Preserve unsigned EUR 10 native activation candidate and evaluator bindings
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0e387-534d-70e3-ad53-4ea05676db8c
This commit is contained in:
parent
11cc0d5452
commit
0b49b7e82f
7 changed files with 2663 additions and 0 deletions
29
docs/proposals/glas-metered-tool-20260927/README.md
Normal file
29
docs/proposals/glas-metered-tool-20260927/README.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# EUR 10 native tool-proof candidate — 2026-09-27
|
||||
|
||||
Existing work: REINAH-WP-0003-T05/T06 and SECRETS-WP-0009-T03.
|
||||
The user approved one disposable attempt. This packet is not installed or active.
|
||||
Native spend request e9521804-8fce-4fbc-bfdf-8a1aa959fd61 is awaiting the human
|
||||
at https://decisions.coulomb.social/review?memo_id=infd-20260927-b01.
|
||||
Exact window: 2026-09-27T16:35:00Z through 2026-09-27T17:35:00Z.
|
||||
Do not extend this window or treat an unsigned/expired memo as spend authority.
|
||||
|
||||
`spend-policy.json`, `owner.json` and `catalog/` are replacement candidates only.
|
||||
The native ID is a requested reference, not evidence of acceptance.
|
||||
`activation-review.json` passes the offline bounds review with two USD 4.64 holds.
|
||||
`native-pdp-inputs.json` records the six exact requests and live native evaluator
|
||||
responses from the named flex-auth-secrets-engine pod over Kubernetes port-forward.
|
||||
These input bindings are not approval entries, consume receipts or execution authority.
|
||||
The temporary ten-minute caller credential was destroyed after collecting them.
|
||||
|
||||
Host readback still matches owner e0d3fb84 and spend file f31c5859. Reservations,
|
||||
request_routes and request_reservations remain empty. Recheck under owner lock
|
||||
before replacement; preserve original policy/ledger and retire the old dispatch
|
||||
capability. The new ledger filename is a candidate only; never reset old state.
|
||||
|
||||
Remaining gates: human spend acceptance, billing/FX including taxes and fees,
|
||||
exact new native credential approvals and delivery, clock admission, host pins,
|
||||
and one natural queue attempt with teardown/revocation. CCR-2026-0025 currently
|
||||
limits its attended requester to three frozen older T03 requests. Admit a reviewed
|
||||
command and these six exact requests through that owner before reusing the reader;
|
||||
do not silently broaden it or submit these as the older records. Existing owner
|
||||
work remains the tracking record; no task or workplan is added.
|
||||
690
docs/proposals/glas-metered-tool-20260927/activation-review.json
Normal file
690
docs/proposals/glas-metered-tool-20260927/activation-review.json
Normal file
|
|
@ -0,0 +1,690 @@
|
|||
{
|
||||
"schema": "metered-activation-review/v1",
|
||||
"status": "review-only",
|
||||
"dispatch_enabled": false,
|
||||
"owner_digest": "20192889bb59f34875ca454776bd7fd162877e8a26924c2973104d2e8cbf3d39",
|
||||
"policy_review": {
|
||||
"passed": true,
|
||||
"failures": [],
|
||||
"maximum_request_microusd": 4640000,
|
||||
"maximum_request_eur_at_configured_fx": "4.64",
|
||||
"full_output_requests_that_fit": 2,
|
||||
"provider_facts_ref": "https://platform.claude.com/docs/en/models/sonnet-5/whats-new-sonnet-5",
|
||||
"authority_granted": false,
|
||||
"remaining_acceptance": [
|
||||
"FX upper bound and validity",
|
||||
"live CLI/beta compatibility",
|
||||
"native delivery and runtime admission"
|
||||
]
|
||||
},
|
||||
"plans": [
|
||||
{
|
||||
"catalog_id": "glas-claude-agent-dev-anthropic",
|
||||
"stage": "prod",
|
||||
"decision_id": "",
|
||||
"policy_name": "se-prod-glas-claude-agent-dev-anthropic",
|
||||
"role_name": "se-prod-glas-claude-agent-dev-anthropic",
|
||||
"actions": [
|
||||
{
|
||||
"kind": "kv-mount-check",
|
||||
"target": "platform",
|
||||
"detail": {
|
||||
"type": "kv-v2",
|
||||
"management": "existing",
|
||||
"mutation": "none"
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "policy",
|
||||
"target": "se-prod-glas-claude-agent-dev-anthropic",
|
||||
"detail": {
|
||||
"paths": "platform/data/workloads/glas-harness/claude-agent-dev"
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "approle",
|
||||
"target": "se-prod-glas-claude-agent-dev-anthropic",
|
||||
"detail": {
|
||||
"token_policies": "se-prod-glas-claude-agent-dev-anthropic",
|
||||
"auth": "approle",
|
||||
"token_ttl": "5m",
|
||||
"token_max_ttl": "15m",
|
||||
"token_num_uses": 8,
|
||||
"secret_id_ttl": "5m",
|
||||
"secret_id_num_uses": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"policy_hcl": "# Generated by secrets-engine for policy \"se-prod-glas-claude-agent-dev-anthropic\"\n\npath \"platform/data/workloads/glas-harness/claude-agent-dev\" {\n capabilities = [\"read\"]\n}\n"
|
||||
},
|
||||
{
|
||||
"catalog_id": "activity-core-metered-worker-token",
|
||||
"stage": "prod",
|
||||
"decision_id": "",
|
||||
"policy_name": "se-prod-activity-core-metered-worker-token",
|
||||
"role_name": "se-prod-activity-core-metered-worker-token",
|
||||
"actions": [
|
||||
{
|
||||
"kind": "kv-mount-check",
|
||||
"target": "platform",
|
||||
"detail": {
|
||||
"type": "kv-v2",
|
||||
"management": "existing",
|
||||
"mutation": "none"
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "policy",
|
||||
"target": "se-prod-activity-core-metered-worker-token",
|
||||
"detail": {
|
||||
"paths": "platform/data/workloads/activity-core/ops-run-workers/rein-aharness-metered-railiance01"
|
||||
}
|
||||
},
|
||||
{
|
||||
"kind": "approle",
|
||||
"target": "se-prod-activity-core-metered-worker-token",
|
||||
"detail": {
|
||||
"token_policies": "se-prod-activity-core-metered-worker-token",
|
||||
"auth": "approle",
|
||||
"token_ttl": "5m",
|
||||
"token_max_ttl": "15m",
|
||||
"token_num_uses": 8,
|
||||
"secret_id_ttl": "5m",
|
||||
"secret_id_num_uses": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"policy_hcl": "# Generated by secrets-engine for policy \"se-prod-activity-core-metered-worker-token\"\n\npath \"platform/data/workloads/activity-core/ops-run-workers/rein-aharness-metered-railiance01\" {\n capabilities = [\"read\"]\n}\n"
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"catalog": "glas-claude-agent-dev-anthropic",
|
||||
"action": "apply",
|
||||
"request": {
|
||||
"tenant": "tenant:platform",
|
||||
"subject": {
|
||||
"id": "secrets-engine",
|
||||
"type": "service"
|
||||
},
|
||||
"action": "apply",
|
||||
"resource": {
|
||||
"id": "catalog:glas-claude-agent-dev-anthropic",
|
||||
"type": "secret-catalog-lane",
|
||||
"system": "secrets-engine",
|
||||
"attributes": {
|
||||
"stage": "prod",
|
||||
"fields": [],
|
||||
"policy_targets": [
|
||||
"se-prod-glas-claude-agent-dev-anthropic"
|
||||
],
|
||||
"auth_targets": [
|
||||
"se-prod-glas-claude-agent-dev-anthropic"
|
||||
]
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"purpose": "Owner-admitted glas-harness agt run through the reviewed local profile; no caller-facing key fetch",
|
||||
"catalog_target": {
|
||||
"kind": "kv",
|
||||
"org": "coulomb",
|
||||
"repo": "sand-boxer",
|
||||
"mount": "platform",
|
||||
"path": "workloads/glas-harness/claude-agent-dev",
|
||||
"fields": [
|
||||
"ANTHROPIC_API_KEY"
|
||||
],
|
||||
"mount_management": "existing",
|
||||
"consumers": [
|
||||
{
|
||||
"name": "sand-boxer-glas-agent-dev",
|
||||
"auth": "approle",
|
||||
"claim": "catalog:glas-claude-agent-dev-anthropic",
|
||||
"purpose": "Owner-admitted glas-harness agt run through the reviewed local profile; no caller-facing key fetch"
|
||||
}
|
||||
],
|
||||
"delivery_modes": [
|
||||
"exec-env",
|
||||
"read-check"
|
||||
],
|
||||
"delivery_auth": {
|
||||
"method": "approle",
|
||||
"management": "engine",
|
||||
"policy_name": "se-prod-glas-claude-agent-dev-anthropic",
|
||||
"role_name": "se-prod-glas-claude-agent-dev-anthropic",
|
||||
"metadata_read": false,
|
||||
"token_ttl": "5m",
|
||||
"token_max_ttl": "15m",
|
||||
"secret_id_ttl": "5m",
|
||||
"secret_id_num_uses": 1,
|
||||
"token_num_uses": 8
|
||||
},
|
||||
"delivery_config": {
|
||||
"exec_owner": {
|
||||
"status": "configured",
|
||||
"owner": "rein-aharness MessagesOwner (metered-once) with sand-boxer runtime boundary",
|
||||
"command": [
|
||||
"/home/tegwick/.helixforge-factory/runtimes/b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969/bin/python3",
|
||||
"-I",
|
||||
"-B",
|
||||
"-m",
|
||||
"rein_aharness.cli",
|
||||
"metered-once",
|
||||
"--owner-config",
|
||||
"/home/tegwick/hfact/owner-metered/owner.json"
|
||||
],
|
||||
"cwd": "/home/tegwick/hfact/owner-metered",
|
||||
"environment": {
|
||||
"PATH": "/usr/bin:/bin",
|
||||
"LANG": "C.UTF-8",
|
||||
"HOME": "/home/tegwick",
|
||||
"ACTIVITY_CORE_URL": "http://127.0.0.1:8010",
|
||||
"AGENT_HARNESS_WORKER_ID": "rein-aharness-metered@railiance01",
|
||||
"AGENT_HARNESS_OPS_LABELS": "hfact-metered",
|
||||
"AGENT_HARNESS_OPS_LABELS_MODE": "all",
|
||||
"AGENT_HARNESS_EXECUTION_PROJECT": "prj-helixforge-factory",
|
||||
"AGENT_HARNESS_REQUIRE_SPEND_ADMISSION": "1",
|
||||
"AGENT_HARNESS_REQUIRE_REQUEST_ADMISSION": "1",
|
||||
"AGENT_HARNESS_SPEND_POLICY": "/home/tegwick/hfact/owner-metered/spend-policy.json",
|
||||
"AGENT_HARNESS_SPEND_LEDGER": "/home/tegwick/hfact/owner-metered/spend-tool-proof-20260927.sqlite3",
|
||||
"AGENT_HARNESS_REPO_MAP": "{\"hfact-glas-proof\":\"/home/tegwick/hfact/targets/hfact-glas-proof\"}"
|
||||
},
|
||||
"files": {
|
||||
"/home/tegwick/.helixforge-factory/runtimes/b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969/bin/python3": {
|
||||
"sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
|
||||
"private": false
|
||||
},
|
||||
"/home/tegwick/hfact/owner-metered/owner.json": {
|
||||
"sha256": "0f61b428676f08b22856be7426d86270830d08606a46049d1354dfadd551722f",
|
||||
"private": true
|
||||
},
|
||||
"/home/tegwick/hfact/owner-metered/spend-policy.json": {
|
||||
"sha256": "a9cd136885e7aa394cc937e52ac25bf25aaac3eb470bdabca0880f8127be2e42",
|
||||
"private": true
|
||||
}
|
||||
},
|
||||
"companions": [
|
||||
{
|
||||
"catalog": "activity-core-metered-worker-token",
|
||||
"field": "token",
|
||||
"env": "ACTIVITY_CORE_WORKER_TOKEN"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"auth_capability": {},
|
||||
"workload_delivery": []
|
||||
},
|
||||
"human_control": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"catalog": "glas-claude-agent-dev-anthropic",
|
||||
"action": "verify",
|
||||
"request": {
|
||||
"tenant": "tenant:platform",
|
||||
"subject": {
|
||||
"id": "secrets-engine",
|
||||
"type": "service"
|
||||
},
|
||||
"action": "verify",
|
||||
"resource": {
|
||||
"id": "catalog:glas-claude-agent-dev-anthropic",
|
||||
"type": "secret-catalog-lane",
|
||||
"system": "secrets-engine",
|
||||
"attributes": {
|
||||
"stage": "prod",
|
||||
"fields": [
|
||||
"ANTHROPIC_API_KEY"
|
||||
],
|
||||
"policy_targets": [
|
||||
"se-prod-glas-claude-agent-dev-anthropic"
|
||||
],
|
||||
"auth_targets": [
|
||||
"se-prod-glas-claude-agent-dev-anthropic"
|
||||
]
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"purpose": "Owner-admitted glas-harness agt run through the reviewed local profile; no caller-facing key fetch",
|
||||
"catalog_target": {
|
||||
"kind": "kv",
|
||||
"org": "coulomb",
|
||||
"repo": "sand-boxer",
|
||||
"mount": "platform",
|
||||
"path": "workloads/glas-harness/claude-agent-dev",
|
||||
"fields": [
|
||||
"ANTHROPIC_API_KEY"
|
||||
],
|
||||
"mount_management": "existing",
|
||||
"consumers": [
|
||||
{
|
||||
"name": "sand-boxer-glas-agent-dev",
|
||||
"auth": "approle",
|
||||
"claim": "catalog:glas-claude-agent-dev-anthropic",
|
||||
"purpose": "Owner-admitted glas-harness agt run through the reviewed local profile; no caller-facing key fetch"
|
||||
}
|
||||
],
|
||||
"delivery_modes": [
|
||||
"exec-env",
|
||||
"read-check"
|
||||
],
|
||||
"delivery_auth": {
|
||||
"method": "approle",
|
||||
"management": "engine",
|
||||
"policy_name": "se-prod-glas-claude-agent-dev-anthropic",
|
||||
"role_name": "se-prod-glas-claude-agent-dev-anthropic",
|
||||
"metadata_read": false,
|
||||
"token_ttl": "5m",
|
||||
"token_max_ttl": "15m",
|
||||
"secret_id_ttl": "5m",
|
||||
"secret_id_num_uses": 1,
|
||||
"token_num_uses": 8
|
||||
},
|
||||
"delivery_config": {
|
||||
"exec_owner": {
|
||||
"status": "configured",
|
||||
"owner": "rein-aharness MessagesOwner (metered-once) with sand-boxer runtime boundary",
|
||||
"command": [
|
||||
"/home/tegwick/.helixforge-factory/runtimes/b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969/bin/python3",
|
||||
"-I",
|
||||
"-B",
|
||||
"-m",
|
||||
"rein_aharness.cli",
|
||||
"metered-once",
|
||||
"--owner-config",
|
||||
"/home/tegwick/hfact/owner-metered/owner.json"
|
||||
],
|
||||
"cwd": "/home/tegwick/hfact/owner-metered",
|
||||
"environment": {
|
||||
"PATH": "/usr/bin:/bin",
|
||||
"LANG": "C.UTF-8",
|
||||
"HOME": "/home/tegwick",
|
||||
"ACTIVITY_CORE_URL": "http://127.0.0.1:8010",
|
||||
"AGENT_HARNESS_WORKER_ID": "rein-aharness-metered@railiance01",
|
||||
"AGENT_HARNESS_OPS_LABELS": "hfact-metered",
|
||||
"AGENT_HARNESS_OPS_LABELS_MODE": "all",
|
||||
"AGENT_HARNESS_EXECUTION_PROJECT": "prj-helixforge-factory",
|
||||
"AGENT_HARNESS_REQUIRE_SPEND_ADMISSION": "1",
|
||||
"AGENT_HARNESS_REQUIRE_REQUEST_ADMISSION": "1",
|
||||
"AGENT_HARNESS_SPEND_POLICY": "/home/tegwick/hfact/owner-metered/spend-policy.json",
|
||||
"AGENT_HARNESS_SPEND_LEDGER": "/home/tegwick/hfact/owner-metered/spend-tool-proof-20260927.sqlite3",
|
||||
"AGENT_HARNESS_REPO_MAP": "{\"hfact-glas-proof\":\"/home/tegwick/hfact/targets/hfact-glas-proof\"}"
|
||||
},
|
||||
"files": {
|
||||
"/home/tegwick/.helixforge-factory/runtimes/b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969/bin/python3": {
|
||||
"sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
|
||||
"private": false
|
||||
},
|
||||
"/home/tegwick/hfact/owner-metered/owner.json": {
|
||||
"sha256": "0f61b428676f08b22856be7426d86270830d08606a46049d1354dfadd551722f",
|
||||
"private": true
|
||||
},
|
||||
"/home/tegwick/hfact/owner-metered/spend-policy.json": {
|
||||
"sha256": "a9cd136885e7aa394cc937e52ac25bf25aaac3eb470bdabca0880f8127be2e42",
|
||||
"private": true
|
||||
}
|
||||
},
|
||||
"companions": [
|
||||
{
|
||||
"catalog": "activity-core-metered-worker-token",
|
||||
"field": "token",
|
||||
"env": "ACTIVITY_CORE_WORKER_TOKEN"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"auth_capability": {},
|
||||
"workload_delivery": []
|
||||
},
|
||||
"human_control": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"catalog": "glas-claude-agent-dev-anthropic",
|
||||
"action": "exec",
|
||||
"request": {
|
||||
"tenant": "tenant:platform",
|
||||
"subject": {
|
||||
"id": "secrets-engine",
|
||||
"type": "service"
|
||||
},
|
||||
"action": "exec",
|
||||
"resource": {
|
||||
"id": "catalog:glas-claude-agent-dev-anthropic",
|
||||
"type": "secret-catalog-lane",
|
||||
"system": "secrets-engine",
|
||||
"attributes": {
|
||||
"stage": "prod",
|
||||
"fields": [
|
||||
"ANTHROPIC_API_KEY"
|
||||
],
|
||||
"policy_targets": [
|
||||
"se-prod-glas-claude-agent-dev-anthropic"
|
||||
],
|
||||
"auth_targets": [
|
||||
"se-prod-glas-claude-agent-dev-anthropic"
|
||||
]
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"purpose": "Owner-admitted glas-harness agt run through the reviewed local profile; no caller-facing key fetch",
|
||||
"catalog_target": {
|
||||
"kind": "kv",
|
||||
"org": "coulomb",
|
||||
"repo": "sand-boxer",
|
||||
"mount": "platform",
|
||||
"path": "workloads/glas-harness/claude-agent-dev",
|
||||
"fields": [
|
||||
"ANTHROPIC_API_KEY"
|
||||
],
|
||||
"mount_management": "existing",
|
||||
"consumers": [
|
||||
{
|
||||
"name": "sand-boxer-glas-agent-dev",
|
||||
"auth": "approle",
|
||||
"claim": "catalog:glas-claude-agent-dev-anthropic",
|
||||
"purpose": "Owner-admitted glas-harness agt run through the reviewed local profile; no caller-facing key fetch"
|
||||
}
|
||||
],
|
||||
"delivery_modes": [
|
||||
"exec-env",
|
||||
"read-check"
|
||||
],
|
||||
"delivery_auth": {
|
||||
"method": "approle",
|
||||
"management": "engine",
|
||||
"policy_name": "se-prod-glas-claude-agent-dev-anthropic",
|
||||
"role_name": "se-prod-glas-claude-agent-dev-anthropic",
|
||||
"metadata_read": false,
|
||||
"token_ttl": "5m",
|
||||
"token_max_ttl": "15m",
|
||||
"secret_id_ttl": "5m",
|
||||
"secret_id_num_uses": 1,
|
||||
"token_num_uses": 8
|
||||
},
|
||||
"delivery_config": {
|
||||
"exec_owner": {
|
||||
"status": "configured",
|
||||
"owner": "rein-aharness MessagesOwner (metered-once) with sand-boxer runtime boundary",
|
||||
"command": [
|
||||
"/home/tegwick/.helixforge-factory/runtimes/b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969/bin/python3",
|
||||
"-I",
|
||||
"-B",
|
||||
"-m",
|
||||
"rein_aharness.cli",
|
||||
"metered-once",
|
||||
"--owner-config",
|
||||
"/home/tegwick/hfact/owner-metered/owner.json"
|
||||
],
|
||||
"cwd": "/home/tegwick/hfact/owner-metered",
|
||||
"environment": {
|
||||
"PATH": "/usr/bin:/bin",
|
||||
"LANG": "C.UTF-8",
|
||||
"HOME": "/home/tegwick",
|
||||
"ACTIVITY_CORE_URL": "http://127.0.0.1:8010",
|
||||
"AGENT_HARNESS_WORKER_ID": "rein-aharness-metered@railiance01",
|
||||
"AGENT_HARNESS_OPS_LABELS": "hfact-metered",
|
||||
"AGENT_HARNESS_OPS_LABELS_MODE": "all",
|
||||
"AGENT_HARNESS_EXECUTION_PROJECT": "prj-helixforge-factory",
|
||||
"AGENT_HARNESS_REQUIRE_SPEND_ADMISSION": "1",
|
||||
"AGENT_HARNESS_REQUIRE_REQUEST_ADMISSION": "1",
|
||||
"AGENT_HARNESS_SPEND_POLICY": "/home/tegwick/hfact/owner-metered/spend-policy.json",
|
||||
"AGENT_HARNESS_SPEND_LEDGER": "/home/tegwick/hfact/owner-metered/spend-tool-proof-20260927.sqlite3",
|
||||
"AGENT_HARNESS_REPO_MAP": "{\"hfact-glas-proof\":\"/home/tegwick/hfact/targets/hfact-glas-proof\"}"
|
||||
},
|
||||
"files": {
|
||||
"/home/tegwick/.helixforge-factory/runtimes/b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969/bin/python3": {
|
||||
"sha256": "e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f",
|
||||
"private": false
|
||||
},
|
||||
"/home/tegwick/hfact/owner-metered/owner.json": {
|
||||
"sha256": "0f61b428676f08b22856be7426d86270830d08606a46049d1354dfadd551722f",
|
||||
"private": true
|
||||
},
|
||||
"/home/tegwick/hfact/owner-metered/spend-policy.json": {
|
||||
"sha256": "a9cd136885e7aa394cc937e52ac25bf25aaac3eb470bdabca0880f8127be2e42",
|
||||
"private": true
|
||||
}
|
||||
},
|
||||
"companions": [
|
||||
{
|
||||
"catalog": "activity-core-metered-worker-token",
|
||||
"field": "token",
|
||||
"env": "ACTIVITY_CORE_WORKER_TOKEN"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"auth_capability": {},
|
||||
"workload_delivery": []
|
||||
},
|
||||
"human_control": true,
|
||||
"exec_owner_sha256": "20192889bb59f34875ca454776bd7fd162877e8a26924c2973104d2e8cbf3d39"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"catalog": "activity-core-metered-worker-token",
|
||||
"action": "apply",
|
||||
"request": {
|
||||
"tenant": "tenant:platform",
|
||||
"subject": {
|
||||
"id": "secrets-engine",
|
||||
"type": "service"
|
||||
},
|
||||
"action": "apply",
|
||||
"resource": {
|
||||
"id": "catalog:activity-core-metered-worker-token",
|
||||
"type": "secret-catalog-lane",
|
||||
"system": "secrets-engine",
|
||||
"attributes": {
|
||||
"stage": "prod",
|
||||
"fields": [],
|
||||
"policy_targets": [
|
||||
"se-prod-activity-core-metered-worker-token"
|
||||
],
|
||||
"auth_targets": [
|
||||
"se-prod-activity-core-metered-worker-token"
|
||||
]
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"purpose": "Claim the admitted hfact-metered ops_run as rein-aharness-metered@railiance01 inside the catalog-bound Glas metered owner",
|
||||
"catalog_target": {
|
||||
"kind": "kv",
|
||||
"org": "coulomb",
|
||||
"repo": "activity-core",
|
||||
"mount": "platform",
|
||||
"path": "workloads/activity-core/ops-run-workers/rein-aharness-metered-railiance01",
|
||||
"fields": [
|
||||
"token"
|
||||
],
|
||||
"mount_management": "existing",
|
||||
"consumers": [
|
||||
{
|
||||
"name": "rein-aharness-metered-railiance01",
|
||||
"auth": "approle",
|
||||
"claim": "catalog:activity-core-metered-worker-token",
|
||||
"purpose": "Claim the admitted hfact-metered ops_run as rein-aharness-metered@railiance01 inside the catalog-bound Glas metered owner"
|
||||
}
|
||||
],
|
||||
"delivery_modes": [
|
||||
"exec-env"
|
||||
],
|
||||
"delivery_auth": {
|
||||
"method": "approle",
|
||||
"management": "engine",
|
||||
"policy_name": "se-prod-activity-core-metered-worker-token",
|
||||
"role_name": "se-prod-activity-core-metered-worker-token",
|
||||
"metadata_read": false,
|
||||
"token_ttl": "5m",
|
||||
"token_max_ttl": "15m",
|
||||
"secret_id_ttl": "5m",
|
||||
"secret_id_num_uses": 1,
|
||||
"token_num_uses": 8
|
||||
},
|
||||
"delivery_config": {
|
||||
"companion_of": [
|
||||
"glas-claude-agent-dev-anthropic"
|
||||
]
|
||||
},
|
||||
"auth_capability": {},
|
||||
"workload_delivery": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"catalog": "activity-core-metered-worker-token",
|
||||
"action": "verify",
|
||||
"request": {
|
||||
"tenant": "tenant:platform",
|
||||
"subject": {
|
||||
"id": "secrets-engine",
|
||||
"type": "service"
|
||||
},
|
||||
"action": "verify",
|
||||
"resource": {
|
||||
"id": "catalog:activity-core-metered-worker-token",
|
||||
"type": "secret-catalog-lane",
|
||||
"system": "secrets-engine",
|
||||
"attributes": {
|
||||
"stage": "prod",
|
||||
"fields": [
|
||||
"token"
|
||||
],
|
||||
"policy_targets": [
|
||||
"se-prod-activity-core-metered-worker-token"
|
||||
],
|
||||
"auth_targets": [
|
||||
"se-prod-activity-core-metered-worker-token"
|
||||
]
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"purpose": "Claim the admitted hfact-metered ops_run as rein-aharness-metered@railiance01 inside the catalog-bound Glas metered owner",
|
||||
"catalog_target": {
|
||||
"kind": "kv",
|
||||
"org": "coulomb",
|
||||
"repo": "activity-core",
|
||||
"mount": "platform",
|
||||
"path": "workloads/activity-core/ops-run-workers/rein-aharness-metered-railiance01",
|
||||
"fields": [
|
||||
"token"
|
||||
],
|
||||
"mount_management": "existing",
|
||||
"consumers": [
|
||||
{
|
||||
"name": "rein-aharness-metered-railiance01",
|
||||
"auth": "approle",
|
||||
"claim": "catalog:activity-core-metered-worker-token",
|
||||
"purpose": "Claim the admitted hfact-metered ops_run as rein-aharness-metered@railiance01 inside the catalog-bound Glas metered owner"
|
||||
}
|
||||
],
|
||||
"delivery_modes": [
|
||||
"exec-env"
|
||||
],
|
||||
"delivery_auth": {
|
||||
"method": "approle",
|
||||
"management": "engine",
|
||||
"policy_name": "se-prod-activity-core-metered-worker-token",
|
||||
"role_name": "se-prod-activity-core-metered-worker-token",
|
||||
"metadata_read": false,
|
||||
"token_ttl": "5m",
|
||||
"token_max_ttl": "15m",
|
||||
"secret_id_ttl": "5m",
|
||||
"secret_id_num_uses": 1,
|
||||
"token_num_uses": 8
|
||||
},
|
||||
"delivery_config": {
|
||||
"companion_of": [
|
||||
"glas-claude-agent-dev-anthropic"
|
||||
]
|
||||
},
|
||||
"auth_capability": {},
|
||||
"workload_delivery": []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"catalog": "activity-core-metered-worker-token",
|
||||
"action": "exec",
|
||||
"request": {
|
||||
"tenant": "tenant:platform",
|
||||
"subject": {
|
||||
"id": "secrets-engine",
|
||||
"type": "service"
|
||||
},
|
||||
"action": "exec",
|
||||
"resource": {
|
||||
"id": "catalog:activity-core-metered-worker-token",
|
||||
"type": "secret-catalog-lane",
|
||||
"system": "secrets-engine",
|
||||
"attributes": {
|
||||
"stage": "prod",
|
||||
"fields": [
|
||||
"token"
|
||||
],
|
||||
"policy_targets": [
|
||||
"se-prod-activity-core-metered-worker-token"
|
||||
],
|
||||
"auth_targets": [
|
||||
"se-prod-activity-core-metered-worker-token"
|
||||
]
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"purpose": "Claim the admitted hfact-metered ops_run as rein-aharness-metered@railiance01 inside the catalog-bound Glas metered owner",
|
||||
"catalog_target": {
|
||||
"kind": "kv",
|
||||
"org": "coulomb",
|
||||
"repo": "activity-core",
|
||||
"mount": "platform",
|
||||
"path": "workloads/activity-core/ops-run-workers/rein-aharness-metered-railiance01",
|
||||
"fields": [
|
||||
"token"
|
||||
],
|
||||
"mount_management": "existing",
|
||||
"consumers": [
|
||||
{
|
||||
"name": "rein-aharness-metered-railiance01",
|
||||
"auth": "approle",
|
||||
"claim": "catalog:activity-core-metered-worker-token",
|
||||
"purpose": "Claim the admitted hfact-metered ops_run as rein-aharness-metered@railiance01 inside the catalog-bound Glas metered owner"
|
||||
}
|
||||
],
|
||||
"delivery_modes": [
|
||||
"exec-env"
|
||||
],
|
||||
"delivery_auth": {
|
||||
"method": "approle",
|
||||
"management": "engine",
|
||||
"policy_name": "se-prod-activity-core-metered-worker-token",
|
||||
"role_name": "se-prod-activity-core-metered-worker-token",
|
||||
"metadata_read": false,
|
||||
"token_ttl": "5m",
|
||||
"token_max_ttl": "15m",
|
||||
"secret_id_ttl": "5m",
|
||||
"secret_id_num_uses": 1,
|
||||
"token_num_uses": 8
|
||||
},
|
||||
"delivery_config": {
|
||||
"companion_of": [
|
||||
"glas-claude-agent-dev-anthropic"
|
||||
]
|
||||
},
|
||||
"auth_capability": {},
|
||||
"workload_delivery": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"native_evaluator_digests": "not obtained; local hashes are not evaluator digests",
|
||||
"approval_ids": [],
|
||||
"host_pins_verified": false
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
id: activity-core-metered-worker-token
|
||||
kind: kv
|
||||
org: coulomb
|
||||
repo: activity-core
|
||||
stage: prod
|
||||
description: Activity Core queue token for rein-aharness-metered@railiance01,
|
||||
delivered only as a companion of the Glas metered owner. Custody and issuance
|
||||
are activity-core's (ACTIVITY-WP-0039); secrets-engine only reads.
|
||||
mount: platform
|
||||
path: workloads/activity-core/ops-run-workers/rein-aharness-metered-railiance01
|
||||
mount_management: existing
|
||||
fields:
|
||||
- token
|
||||
consumers:
|
||||
- name: rein-aharness-metered-railiance01
|
||||
auth: approle
|
||||
claim: catalog:activity-core-metered-worker-token
|
||||
purpose: Claim the admitted hfact-metered ops_run as rein-aharness-metered@railiance01
|
||||
inside the catalog-bound Glas metered owner
|
||||
workload_delivery: []
|
||||
delivery_config:
|
||||
companion_of:
|
||||
- glas-claude-agent-dev-anthropic
|
||||
delivery_modes:
|
||||
- exec-env
|
||||
delivery_auth:
|
||||
method: approle
|
||||
management: engine
|
||||
policy_name: se-prod-activity-core-metered-worker-token
|
||||
role_name: se-prod-activity-core-metered-worker-token
|
||||
metadata_read: false
|
||||
token_ttl: 5m
|
||||
token_max_ttl: 15m
|
||||
secret_id_ttl: 5m
|
||||
secret_id_num_uses: 1
|
||||
token_num_uses: 8
|
||||
approval:
|
||||
model: decision
|
||||
decision_ref: ACTIVITY-WP-0039
|
||||
notes: Ordinary lane approval, no human control (operator decision 2026-09-23,
|
||||
SECRETS-WP-0011). Native apply and exec still need per-lane claim, PDP decision
|
||||
and consume. This entry is not authorization.
|
||||
verification:
|
||||
positive: Exact scoped AppRole reads only token, delivered as ACTIVITY_CORE_WORKER_TOKEN
|
||||
into the bound Glas metered owner.
|
||||
negative: The claim-loop worker path, sibling KV, metadata, listing and writes denied;
|
||||
the Glas lane AppRole cannot read this path.
|
||||
risk:
|
||||
classification: standard
|
||||
notes: Lets the holder claim, heartbeat and close ops_runs as the metered identity
|
||||
only. No provider spend by itself.
|
||||
rotation:
|
||||
owner: activity-core
|
||||
expectation: Mint a new value at the same path via ACTIVITY-WP-0039 procedure; ESO
|
||||
resyncs actcore-runtime-secret; next exec reads the new value.
|
||||
ttl: owner-defined
|
||||
deactivation:
|
||||
owner: activity-core
|
||||
expectation: Remove the identity from ACTIVITY_CORE_WORKERS and the path; revoke
|
||||
the se-prod AppRole and policy.
|
||||
audit:
|
||||
evidence: Lane id, companion primary, actor, exact path, field name, timestamps,
|
||||
and pass/fail only
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
id: glas-claude-agent-dev-anthropic
|
||||
kind: kv
|
||||
org: coulomb
|
||||
repo: sand-boxer
|
||||
stage: prod
|
||||
description: Catalog-bound metered owner with Activity Core worker-token companion.
|
||||
The 2026-09-27 corrected owner pin requires reviewed host installation; the old
|
||||
200k/32k owner is not admitted by this catalog. Native activation remains SECRETS-WP-0009-T03.
|
||||
mount: platform
|
||||
path: workloads/glas-harness/claude-agent-dev
|
||||
mount_management: existing
|
||||
fields:
|
||||
- ANTHROPIC_API_KEY
|
||||
consumers:
|
||||
- name: sand-boxer-glas-agent-dev
|
||||
auth: approle
|
||||
claim: catalog:glas-claude-agent-dev-anthropic
|
||||
purpose: Owner-admitted glas-harness agt run through the reviewed local profile;
|
||||
no caller-facing key fetch
|
||||
workload_delivery: []
|
||||
delivery_config:
|
||||
exec_owner:
|
||||
status: configured
|
||||
owner: rein-aharness MessagesOwner (metered-once) with sand-boxer runtime boundary
|
||||
command:
|
||||
- /home/tegwick/.helixforge-factory/runtimes/b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969/bin/python3
|
||||
- -I
|
||||
- -B
|
||||
- -m
|
||||
- rein_aharness.cli
|
||||
- metered-once
|
||||
- --owner-config
|
||||
- /home/tegwick/hfact/owner-metered/owner.json
|
||||
cwd: /home/tegwick/hfact/owner-metered
|
||||
environment:
|
||||
PATH: /usr/bin:/bin
|
||||
LANG: C.UTF-8
|
||||
HOME: /home/tegwick
|
||||
ACTIVITY_CORE_URL: http://127.0.0.1:8010
|
||||
AGENT_HARNESS_WORKER_ID: rein-aharness-metered@railiance01
|
||||
AGENT_HARNESS_OPS_LABELS: hfact-metered
|
||||
AGENT_HARNESS_OPS_LABELS_MODE: all
|
||||
AGENT_HARNESS_EXECUTION_PROJECT: prj-helixforge-factory
|
||||
AGENT_HARNESS_REQUIRE_SPEND_ADMISSION: '1'
|
||||
AGENT_HARNESS_REQUIRE_REQUEST_ADMISSION: '1'
|
||||
AGENT_HARNESS_SPEND_POLICY: /home/tegwick/hfact/owner-metered/spend-policy.json
|
||||
AGENT_HARNESS_SPEND_LEDGER: /home/tegwick/hfact/owner-metered/spend-tool-proof-20260927.sqlite3
|
||||
AGENT_HARNESS_REPO_MAP: '{"hfact-glas-proof":"/home/tegwick/hfact/targets/hfact-glas-proof"}'
|
||||
files:
|
||||
/home/tegwick/.helixforge-factory/runtimes/b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969/bin/python3:
|
||||
sha256: e50d468e8b0adfb05733f5b87b3cff34829c4a8c1aea50c865aa8bdfe4bb150f
|
||||
private: false
|
||||
/home/tegwick/hfact/owner-metered/owner.json:
|
||||
sha256: 0f61b428676f08b22856be7426d86270830d08606a46049d1354dfadd551722f
|
||||
private: true
|
||||
/home/tegwick/hfact/owner-metered/spend-policy.json:
|
||||
sha256: a9cd136885e7aa394cc937e52ac25bf25aaac3eb470bdabca0880f8127be2e42
|
||||
private: true
|
||||
companions:
|
||||
- catalog: activity-core-metered-worker-token
|
||||
field: token
|
||||
env: ACTIVITY_CORE_WORKER_TOKEN
|
||||
delivery_modes:
|
||||
- exec-env
|
||||
- read-check
|
||||
delivery_auth:
|
||||
method: approle
|
||||
management: engine
|
||||
policy_name: se-prod-glas-claude-agent-dev-anthropic
|
||||
role_name: se-prod-glas-claude-agent-dev-anthropic
|
||||
metadata_read: false
|
||||
token_ttl: 5m
|
||||
token_max_ttl: 15m
|
||||
secret_id_ttl: 5m
|
||||
secret_id_num_uses: 1
|
||||
token_num_uses: 8
|
||||
approval:
|
||||
model: ccr
|
||||
human_control: true
|
||||
decision_ref: CCR-2026-0016
|
||||
notes: Custody only has been completed. Native apply and exec require durable exact-action
|
||||
authorization, engine consume, scoped backend authority and verified delivery
|
||||
state. This entry is not authorization.
|
||||
verification:
|
||||
positive: Exact scoped AppRole reads only ANTHROPIC_API_KEY into the approved child;
|
||||
owner binding and redaction pass.
|
||||
negative: Wrong owner profile/project/actor, direct caller fetch, sibling KV, metadata,
|
||||
listing and writes denied.
|
||||
risk:
|
||||
classification: high
|
||||
notes: API spend; provider expiry 2027-01-31T21:00:00Z is not enforced by Bao token
|
||||
TTL. Workspace scope and budget unverified.
|
||||
rotation:
|
||||
owner: railiance-platform + sand-boxer
|
||||
expectation: Provider replacement, versioned CAS custody, stop old runs, verify
|
||||
replacement then revoke predecessor at Anthropic and prove denial.
|
||||
ttl: provider-defined
|
||||
deactivation:
|
||||
owner: railiance-platform + sand-boxer
|
||||
expectation: Disable lane, stop affected runs, revoke Bao sessions and provider
|
||||
key. Preserve custody history.
|
||||
audit:
|
||||
evidence: CCR id, actor, exact path, field name, provider key identifier if non-secret,
|
||||
timestamps, and pass/fail only
|
||||
1726
docs/proposals/glas-metered-tool-20260927/native-pdp-inputs.json
Normal file
1726
docs/proposals/glas-metered-tool-20260927/native-pdp-inputs.json
Normal file
File diff suppressed because it is too large
Load diff
28
docs/proposals/glas-metered-tool-20260927/owner.json
Normal file
28
docs/proposals/glas-metered-tool-20260927/owner.json
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"version": "1",
|
||||
"authority_ref": "approval-engine:e9521804-8fce-4fbc-bfdf-8a1aa959fd61",
|
||||
"spend_policy_sha256": "3c4403e83c28e7588a03cd93f74787da657f2ae3244b391abae8c1a18afb52d6",
|
||||
"messages_policy": {
|
||||
"tariff_ref": "anthropic-list-2026-09-27:claude-sonnet-5:global-standard:input-bound-1h-cache-write",
|
||||
"model": "claude-sonnet-5",
|
||||
"context_tokens": 1000000,
|
||||
"max_output_tokens": 64000,
|
||||
"input_microusd_per_token": 4,
|
||||
"output_microusd_per_token": 10,
|
||||
"allowed_betas": [
|
||||
"claude-code-20250219",
|
||||
"interleaved-thinking-2025-05-14",
|
||||
"thinking-token-count-2026-05-13",
|
||||
"context-management-2025-06-27",
|
||||
"prompt-caching-scope-2026-01-05",
|
||||
"mid-conversation-system-2026-04-07",
|
||||
"effort-2025-11-24"
|
||||
],
|
||||
"max_body_bytes": 2000000,
|
||||
"timeout_seconds": 120
|
||||
},
|
||||
"runtime": {
|
||||
"path": "/home/tegwick/.helixforge-factory/runtimes/b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969",
|
||||
"sha256": "b6e4e8a429393d68831c996a65c0489664205df969ac9882e581983ec2da4969"
|
||||
}
|
||||
}
|
||||
23
docs/proposals/glas-metered-tool-20260927/spend-policy.json
Normal file
23
docs/proposals/glas-metered-tool-20260927/spend-policy.json
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"version": "1",
|
||||
"envelope_id": "hfact-glas-tool-proof-20260927-one-attempt",
|
||||
"authority_ref": "approval-engine:e9521804-8fce-4fbc-bfdf-8a1aa959fd61",
|
||||
"valid_from": "2026-09-27T16:35:00Z",
|
||||
"expires_at": "2026-09-27T17:35:00Z",
|
||||
"timezone": "Europe/Berlin",
|
||||
"worker_id": "rein-aharness-metered@railiance01",
|
||||
"activity_definition_id": "5bae5505-77f1-5ba3-8dfa-2e10ed15531e",
|
||||
"target_repo": "/home/tegwick/hfact/targets/hfact-glas-proof",
|
||||
"project": "prj-helixforge-factory",
|
||||
"profile_ref": "harness.agent-dev-local@1.1.1",
|
||||
"profile_sha256": "10e423fe256d3a1b3a64b9380ce422dd9e3eba3a432ae35ac28680562683ca65",
|
||||
"descriptor_sha256": "4f151744d8fcc18a58e4b571a6bff32c8688028841c225da3de41d49b29a3a9b",
|
||||
"repository_grant_id": "656911f7dff83e871434b415f0cee685",
|
||||
"max_budget_usd": "5.00",
|
||||
"max_liability_usd": "10.00",
|
||||
"max_turns": 30,
|
||||
"eur_per_usd": "1.00",
|
||||
"per_run_eur": "10",
|
||||
"daily_eur": "20",
|
||||
"total_eur": "500"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue