@inneranimalmedia/agentsam-sdk 2.6.3 → 2.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/AGENTSAM.md +6 -0
  2. package/README.md +16 -1
  3. package/bin/agentsam +16 -1
  4. package/docs/BRAND_INTELLIGENCE.md +1 -1
  5. package/docs/architecture/AGENTSAM_DISTRIBUTION_OWNERSHIP.md +176 -0
  6. package/docs/architecture/AGENTSAM_GO_RUNTIME.md +282 -0
  7. package/docs/architecture/CODEBASEINDEX_GUIDED_PATH.md +202 -0
  8. package/docs/architecture/FS_E2E_CLOSURE_RECEIPT.md +59 -0
  9. package/docs/architecture/LOCAL_FS_AUTHORITY.md +38 -0
  10. package/docs/architecture/LOCAL_STUDIO_CLOUDFLARE_OAUTH.md +28 -0
  11. package/docs/architecture/PLAN_CLI_AND_LOCAL_STUDIO_DESKTOP.md +96 -0
  12. package/docs/architecture/SAM_ACTIVITY_RECOVERY_RECEIPT.md +39 -0
  13. package/docs/architecture/SAM_DECISION_WORK_RECEIPT.md +54 -0
  14. package/docs/architecture/SAM_KERNEL.md +181 -0
  15. package/docs/architecture/SAM_MACHINE_NORMALIZATION_PRECOMMIT_REPORT.md +208 -0
  16. package/docs/architecture/SLASH_SKILLS_PORTABLE.md +116 -0
  17. package/docs/architecture/fs-e2e-receipt.latest.json +42 -0
  18. package/docs/architecture/previews/codebaseindex-guided-path/CODEBASEINDEX_GUIDED_PATH.md +202 -0
  19. package/docs/architecture/previews/codebaseindex-guided-path/index.html +321 -0
  20. package/migrations/d1/0010_portable_tickets_memory.sql +140 -0
  21. package/migrations/d1/0011_agentsam_skill_v2.sql +185 -0
  22. package/migrations/d1/0011b_agentsam_skill_v2_cutover.sql +22 -0
  23. package/migrations/d1/0011c_agentsam_skill_v2_backfill.sql +76 -0
  24. package/migrations/d1/0011d_agentsam_skill_v2_retrieval_revisions.sql +50 -0
  25. package/migrations/d1/0012_agentsam_tools_required_seed.sql +67 -0
  26. package/migrations/d1/0013_identity_oauth_states.sql +15 -0
  27. package/migrations/d1/0014_auth_event_log.sql +20 -0
  28. package/migrations/d1/0015_identity_oauth_state_app_id.sql +3 -0
  29. package/migrations/d1/README_PORTABLE_CONTROL_PLANE.md +16 -0
  30. package/migrations/sqlite/agentsam_skill_retrieval.portable.sql +42 -0
  31. package/package.json +19 -4
  32. package/packages/agentsam-contracts/src/errors.ts +16 -0
  33. package/packages/agentsam-errors/src/envelope.js +53 -0
  34. package/packages/agentsam-errors/src/index.js +1 -0
  35. package/packages/agentsam-errors/src/recovery.js +301 -0
  36. package/packages/agentsam-knowledge/src/providers/index.js +18 -6
  37. package/packages/connectors/cloudflare/src/routes.js +9 -0
  38. package/packages/connectors/cloudflare/tests/connector.test.mjs +26 -1
  39. package/packages/identity/.agentsam/features/oauth-login-portal/agentsam.feature.json +1 -1
  40. package/packages/identity/.agentsam/features/oauth-login-portal/routes.json +11 -2
  41. package/packages/identity/docs/PORTABLE_IDENTITY_ARCHITECTURE.md +50 -0
  42. package/packages/identity/migrations/D1_SCHEMA_MAPPING.md +31 -0
  43. package/packages/identity/migrations/sqlite/001_identity_core.sql +99 -0
  44. package/packages/identity/migrations/sqlite/002_identity_oauth_client.sql +38 -0
  45. package/packages/identity/migrations/sqlite/003_identity_oauth_server.sql +64 -0
  46. package/packages/identity/package.json +2 -2
  47. package/packages/identity/src/adapters/cloudflare-d1/index.js +122 -22
  48. package/packages/identity/src/adapters/sqlite/index.js +319 -0
  49. package/packages/identity/src/app/verify-app.js +95 -0
  50. package/packages/identity/src/contracts/identity-store.js +115 -0
  51. package/packages/identity/src/contracts/route-ids.js +30 -0
  52. package/packages/identity/src/contracts/route-projection.js +218 -0
  53. package/packages/identity/src/contracts/routes.js +11 -0
  54. package/packages/identity/src/core/browser-paths.js +4 -5
  55. package/packages/identity/src/core/constants.js +13 -8
  56. package/packages/identity/src/core/session-policy.js +32 -0
  57. package/packages/identity/src/frontend/auth-portal/pages/login.html +10 -10
  58. package/packages/identity/src/frontend/auth-portal/pages/reset.html +3 -3
  59. package/packages/identity/src/frontend/auth-portal/pages/signup.html +3 -3
  60. package/packages/identity/src/frontend/auth-portal/preview/dashboard-stub.html +1 -1
  61. package/packages/identity/src/index.js +25 -0
  62. package/packages/identity/src/oauth/README.md +10 -4
  63. package/packages/identity/src/oauth/credentials.js +20 -13
  64. package/packages/identity/src/oauth/finalize-inbound.js +1 -1
  65. package/packages/identity/src/oauth/iam-platform.js +8 -7
  66. package/packages/identity/src/oauth/redirect-paths.js +27 -36
  67. package/packages/identity/src/server/identity-service.js +30 -13
  68. package/packages/identity/src/server/mount-policy.js +30 -0
  69. package/packages/identity/src/server/post-auth.js +79 -0
  70. package/packages/identity/src/server/worker-router.js +104 -72
  71. package/packages/identity/tests/finalize-inbound-oauth.test.mjs +6 -6
  72. package/packages/identity/tests/iam-provider.test.mjs +1 -1
  73. package/packages/identity/tests/identity-service.test.mjs +36 -5
  74. package/packages/identity/tests/oauth-credentials.test.mjs +3 -1
  75. package/packages/identity/tests/portable-identity-architecture.test.mjs +157 -0
  76. package/packages/identity/tests/session-routes-policy.test.mjs +21 -0
  77. package/packages/theme-church-site/package.json +2 -1
  78. package/packages/theme-church-site/src/index.js +1 -0
  79. package/packages/theme-companions-site/package.json +2 -1
  80. package/packages/theme-companions-site/src/index.js +1 -0
  81. package/packages/theme-floors-site/package.json +2 -1
  82. package/packages/theme-floors-site/src/index.js +1 -0
  83. package/packages/theme-fuelnfree-site/package.json +2 -1
  84. package/packages/theme-fuelnfree-site/src/index.js +1 -0
  85. package/packages/theme-handyman-site/package.json +2 -1
  86. package/packages/theme-handyman-site/src/index.js +1 -0
  87. package/packages/theme-insurance-site/package.json +2 -1
  88. package/packages/theme-insurance-site/src/index.js +1 -0
  89. package/packages/theme-shinshu-site/package.json +2 -1
  90. package/packages/theme-shinshu-site/src/index.js +1 -0
  91. package/protocol/apps/agentsam.app.v1.schema.json +51 -0
  92. package/protocol/brand/brandpack.v1.schema.json +43 -0
  93. package/protocol/credentials/issue.v1.schema.json +38 -0
  94. package/protocol/database/connection.v1.schema.json +41 -0
  95. package/protocol/embeddings/embedding-profile.v1.schema.json +20 -0
  96. package/protocol/errors/error-envelope.schema.json +135 -1
  97. package/protocol/errors/recovery.v1.schema.json +50 -0
  98. package/protocol/runtime/workspace-fs.v1.schema.json +71 -0
  99. package/protocol/sam/activity.v1.schema.json +48 -0
  100. package/protocol/sam/answer.v1.schema.json +35 -0
  101. package/protocol/sam/calibration.v1.schema.json +21 -0
  102. package/protocol/sam/decision-receipt.v1.schema.json +29 -0
  103. package/protocol/sam/evaluation.v1.schema.json +19 -0
  104. package/protocol/sam/operation.schema.json +66 -0
  105. package/protocol/sam/outcome.v1.schema.json +36 -0
  106. package/protocol/sam/question.v1.schema.json +26 -0
  107. package/protocol/sam/registry.seed.json +153 -0
  108. package/protocol/sam/result.schema.json +53 -0
  109. package/protocol/sam/state.v1.schema.json +23 -0
  110. package/protocol/skills/agentsam.interaction.v1.schema.json +50 -0
  111. package/protocol/skills/agentsam.skill.v1.schema.json +57 -0
  112. package/protocol/ui/icon-registry.mjs +226 -0
  113. package/protocol/ui/icon.v1.schema.json +51 -0
  114. package/skills/README.md +22 -9
  115. package/skills/agentsam-codebaseindex/SKILL.md +225 -0
  116. package/skills/catalog.json +14 -0
  117. package/src/cli/command-catalog.js +130 -0
  118. package/src/cli/dispatch.js +48 -0
  119. package/src/cli.js +43 -1
  120. package/src/commands/api-key.js +244 -0
  121. package/src/commands/app.js +60 -28
  122. package/src/commands/brand.js +17 -19
  123. package/src/commands/codebaseindex.js +688 -0
  124. package/src/commands/env.js +152 -25
  125. package/src/commands/go.js +366 -53
  126. package/src/commands/interaction-clack.js +115 -0
  127. package/src/commands/models.js +1 -1
  128. package/src/commands/providers.js +62 -14
  129. package/src/commands/shell.js +43 -2
  130. package/src/commands/skill.js +248 -0
  131. package/src/commands/skills.js +1 -1
  132. package/src/commands/start-local.js +4 -0
  133. package/src/commands/whoami.js +90 -18
  134. package/src/go/build.js +229 -39
  135. package/src/go/cloudflare.js +506 -105
  136. package/src/go/container.js +120 -0
  137. package/src/go/contract.js +9 -4
  138. package/src/go/discover.js +149 -33
  139. package/src/go/index.js +15 -3
  140. package/src/go/native-probe-runner.mjs +119 -0
  141. package/src/go/{registry.js → official-registry.js} +64 -7
  142. package/src/go/official-release.js +10 -0
  143. package/src/go/receipts.js +77 -10
  144. package/src/go/verify.js +9 -2
  145. package/src/index.js +27 -0
  146. package/src/indexing/ingest/discover-models.js +298 -0
  147. package/src/indexing/ingest/inventory.js +243 -0
  148. package/src/indexing/ingest/job-graph.js +181 -0
  149. package/src/indexing/ingest/materials.js +210 -0
  150. package/src/lib/provider-credentials.js +63 -21
  151. package/src/lib/slash-commands.js +1 -0
  152. package/src/local-fs/capability.js +121 -0
  153. package/src/local-fs/freshness.js +75 -0
  154. package/src/local-fs/index.js +385 -0
  155. package/src/local-fs/paths.js +100 -0
  156. package/src/local-pty/server.js +295 -19
  157. package/src/mcp/client.js +2 -2
  158. package/src/models/ai-access-onboarding.js +112 -0
  159. package/src/models/discovery.js +10 -2
  160. package/src/models/inventory-core.js +9 -1
  161. package/src/sam/activity/index.js +183 -0
  162. package/src/sam/client.js +252 -0
  163. package/src/sam/decision/calibration.js +109 -0
  164. package/src/sam/decision/confidence.js +126 -0
  165. package/src/sam/decision/evaluate.js +157 -0
  166. package/src/sam/decision/evaluators/deterministic.js +341 -0
  167. package/src/sam/decision/evaluators/heuristic.js +61 -0
  168. package/src/sam/decision/evaluators/select.js +50 -0
  169. package/src/sam/decision/evaluators/semantic.js +149 -0
  170. package/src/sam/decision/hierarchical.js +61 -0
  171. package/src/sam/decision/index.js +53 -0
  172. package/src/sam/decision/policy.js +86 -0
  173. package/src/sam/decision/questions.js +120 -0
  174. package/src/sam/decision/receipt.js +148 -0
  175. package/src/sam/decision/state.js +117 -0
  176. package/src/sam/decision/types.js +22 -0
  177. package/src/sam/decision/validate.js +200 -0
  178. package/src/sam/define.js +51 -0
  179. package/src/sam/index.js +65 -0
  180. package/src/sam/operations/brand-scan.js +62 -0
  181. package/src/sam/operations/cad-blender-inspect.js +36 -0
  182. package/src/sam/operations/codebaseindex-ingest.js +49 -0
  183. package/src/sam/operations/decision-evaluate.js +59 -0
  184. package/src/sam/operations/planning-astar.js +77 -0
  185. package/src/sam/operations/planning-goap.js +60 -0
  186. package/src/sam/operations/repository-inspect.js +72 -0
  187. package/src/sam/operations/security-scan.js +33 -0
  188. package/src/sam/operations/terminal-exec.js +29 -0
  189. package/src/sam/planning/astar.js +311 -0
  190. package/src/sam/planning/goap.js +177 -0
  191. package/src/sam/planning/index.js +21 -0
  192. package/src/sam/planning/state.js +84 -0
  193. package/src/sam/registry.js +48 -0
  194. package/src/sam/result.js +77 -0
  195. package/src/sam/seed.js +44 -0
  196. package/src/sam/types.js +91 -0
  197. package/src/skills/catalog.js +64 -0
  198. package/src/skills/content-resolver.js +124 -0
  199. package/src/skills/hosted-store.js +37 -0
  200. package/src/skills/index.js +29 -64
  201. package/src/skills/interaction.js +102 -0
  202. package/src/skills/local-store.js +228 -0
  203. package/src/skills/manifest.js +104 -0
  204. package/src/skills/metrics.js +31 -0
  205. package/src/skills/registry.js +184 -0
  206. package/src/skills/runtime.js +287 -0
  207. package/src/skills/slash.js +44 -0
  208. package/src/ui/cli/help.js +94 -101
  209. package/test/cli/api-key-env-whoami.test.mjs +129 -0
  210. package/test/cli/codebaseindex-plan-ux.test.mjs +37 -0
  211. package/test/cli/go.test.mjs +62 -5
  212. package/test/cli/skill-npm-and-env.test.mjs +52 -0
  213. package/test/cli/wireframes-go-registry.test.mjs +87 -2
  214. package/test/go/build-source-identity.test.mjs +31 -0
  215. package/test/go/cloudflare-probe.test.mjs +274 -10
  216. package/test/go/distribution.test.mjs +28 -0
  217. package/test/integration/ai-access-onboarding.test.mjs +47 -0
  218. package/test/integration/cli-help.test.mjs +1 -1
  219. package/test/integration/cms-site-tenancy-contract.test.mjs +6 -6
  220. package/test/integration/codebaseindex-ingest.test.mjs +166 -0
  221. package/test/integration/icon-registry.test.mjs +67 -0
  222. package/test/integration/ingest-discover-models.test.mjs +30 -0
  223. package/test/integration/install-script.test.mjs +12 -9
  224. package/test/integration/local-fs.test.mjs +113 -0
  225. package/test/integration/provider-env-cli.test.mjs +2 -1
  226. package/test/integration/sam-activity-recovery.test.mjs +147 -0
  227. package/test/integration/sam-decision.test.mjs +584 -0
  228. package/test/integration/sam-kernel.test.mjs +99 -0
  229. package/test/integration/sam-planning-astar.test.mjs +279 -0
  230. package/test/integration/skill-runtime.test.mjs +240 -0
  231. package/test/integration/studio-fs-pty-e2e.test.mjs +294 -0
  232. package/test/models.test.mjs +14 -7
  233. package/test/shell.test.mjs +4 -4
package/AGENTSAM.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  This file defines stable behavior for AgentSam agents using the portable SDK. It is not account state, project state, a run log, or a replacement for repository-specific `.agentsamrules`.
4
4
 
5
+ **Naming:** AgentSam is the product. **SAM** means **Systematic Autonomous Machinery** — the typed
6
+ operation/execution spine (`sam.invoke`, modules, receipts). In docs and code, `sam` is the
7
+ conventional client variable for that machinery, never a human identity. Prefer “SAM resolves…” /
8
+ “AgentSam executes through SAM…” over anthropomorphic phrasing. Architecture SSOT:
9
+ `docs/architecture/SAM_KERNEL.md`.
10
+
5
11
  ## Execution
6
12
 
7
13
  - Infer routine implementation details when repository evidence makes the answer clear; do not block on unnecessary questions.
package/README.md CHANGED
@@ -5,6 +5,21 @@ security, identity, scaffolding, and delivery capabilities with optional AgentSa
5
5
  The interactive CLI can run the same bounded capabilities through an explicitly selected model while
6
6
  keeping model choice, reasoning effort, processing tier, credentials, approvals, context, and cost inspectable.
7
7
 
8
+ **SAM** = **Systematic Autonomous Machinery** — the execution spine under AgentSam (not a person).
9
+ The conventional client variable is `sam`:
10
+
11
+ ```js
12
+ import { AgentSamClient } from '@inneranimalmedia/agentsam-sdk';
13
+
14
+ const sam = new AgentSamClient();
15
+ const repo = await sam.invoke('repository.inspect', { root: '.' });
16
+ // or: await sam.repository.inspect({ root: '.' });
17
+ console.log(repo.data.summary, repo.receipt.id);
18
+ ```
19
+
20
+ See [SAM Kernel](docs/architecture/SAM_KERNEL.md) for `invoke` / `describe` / `discover`,
21
+ operation IDs, and the universal `SamResult` envelope.
22
+
8
23
  **npm:** `@inneranimalmedia/agentsam-sdk` · **Source:** [GitHub](https://github.com/SamPrimeaux/agentsam-sdk)
9
24
 
10
25
  Node 22.5+ is required. Docker is optional for container commands. Python 3.10+ is required
@@ -25,7 +40,7 @@ an npm-bootstrap script; standalone SEA binaries are planned, not shipped yet):
25
40
  ```sh
26
41
  curl -fsSL https://agentsam.inneranimalmedia.com/install | bash
27
42
  # a specific version, channel, or bundled app launcher:
28
- curl -fsSL https://agentsam.inneranimalmedia.com/install | bash -s -- --version 2.6.2
43
+ curl -fsSL https://agentsam.inneranimalmedia.com/install | bash -s -- --version 2.6.3
29
44
  curl -fsSL https://agentsam.inneranimalmedia.com/install | bash -s -- --channel beta
30
45
  curl -fsSL https://agentsam.inneranimalmedia.com/install | bash -s -- --app cad
31
46
  ```
package/bin/agentsam CHANGED
@@ -1,2 +1,17 @@
1
1
  #!/usr/bin/env node
2
- import '../src/cli.js';
2
+ /**
3
+ * AgentSam CLI entry.
4
+ * Suppress only the node:sqlite ExperimentalWarning — keep other warnings visible.
5
+ */
6
+ process.on("warning", (warning) => {
7
+ if (
8
+ warning?.name === "ExperimentalWarning" &&
9
+ /SQLite is an experimental feature/i.test(String(warning.message || ""))
10
+ ) {
11
+ return;
12
+ }
13
+ // Mirror default Node warning printer for everything else.
14
+ console.error(warning.stack || `${warning.name}: ${warning.message}`);
15
+ });
16
+
17
+ await import("../src/cli.js");
@@ -17,7 +17,7 @@
17
17
  | 11. TUI views | partial | activity panel during scan; full shell mockup not rebuilt |
18
18
  | 12. No-model experience | implemented | tests + CLI without model |
19
19
  | 13. Model-assisted | not applicable yet | brand.plan marked model_assisted_optional |
20
- | 14. GOAP integration | partial | `--goap` greedy sequencer + action catalog |
20
+ | 14. GOAP integration | done | `--goap` uses `sam-goap-astar-v1` (A* over brand GOAP actions) |
21
21
  | 15. Receipts | partial | `receipt` + `next_actions` on scan/plan |
22
22
  | 16. Presets | implemented | cms → cms,knowledge,brand,theme |
23
23
  | 17. CLI commands | implemented | `brand`, `plan brand` |
@@ -0,0 +1,176 @@
1
+ # AgentSam Distribution, Ownership, and Telemetry Boundaries
2
+
3
+ ## Principle
4
+
5
+ One AgentSam ecosystem does not mean one giant package, one credential domain, one runtime, or one analytics signal.
6
+
7
+ Keep these authorities distinct:
8
+
9
+ - SDK/CLI — umbrella entry point, protocols, orchestration, discovery.
10
+ - Products — things users independently install/open, such as Local Studio and CAD Creator.
11
+ - Services — independently deployed backends such as agentsam-go-worker.
12
+ - Machine runtime — one agentsamd installation per user machine where required.
13
+ - InnerAnimalMedia infrastructure — InnerAnimalMedia-owned Cloudflare, D1/R2, Workers, ExecOS, MCP, Tail, VMs.
14
+ - Customer/self-host infrastructure — resources owned by the customer's explicitly connected account.
15
+
16
+ ## Normal user vs self-host vs official release
17
+
18
+ ### Normal user
19
+
20
+ @inneranimalmedia/agentsam-sdk
21
+ │
22
+ ▼
23
+ AgentSam CLI
24
+ Local Studio
25
+ │
26
+ ┌──────┴─────────┐
27
+ ▼ ▼
28
+ agentsamd official hosted
29
+ user machine services
30
+
31
+ Normal users do not need service source trees or InnerAnimalMedia infrastructure credentials.
32
+
33
+ ### Advanced self-host
34
+
35
+ installed @inneranimalmedia/agentsam-go-worker
36
+ │
37
+ ▼
38
+ Wrangler identity
39
+ │
40
+ ▼
41
+ explicit USER Cloudflare account
42
+ │
43
+ ▼
44
+ user's Worker/Container
45
+ │
46
+ ▼
47
+ local AgentSam registry
48
+
49
+ A self-host operation never writes inneranimalmedia-business.
50
+
51
+ ### InnerAnimalMedia official release
52
+
53
+ clean maintainer source
54
+ │
55
+ ▼
56
+ explicit InnerAnimalMedia release guard
57
+ │
58
+ ▼
59
+ explicit InnerAnimalMedia CF account
60
+ │
61
+ ▼
62
+ official Worker/Container
63
+ │
64
+ healthy proof
65
+ │
66
+ ▼
67
+ inneranimalmedia-business
68
+ agentsam_products
69
+ asset_relationships
70
+
71
+ The official registry path is not imported as the default meaning of deploy.
72
+
73
+ ## Cloudflare identity boundary
74
+
75
+ Wrangler is the deploy authority. AgentSam uses wrangler whoami --json, requires an authenticated account, requires explicit selection when multiple accounts are available, binds the chosen account into the child process, and records only non-secret account metadata in receipts.
76
+
77
+ Distributed packages never include InnerAnimalMedia Cloudflare credentials.
78
+
79
+ ## Repository/package boundary
80
+
81
+ @inneranimalmedia/agentsam-sdk remains the umbrella package. Deployable or independently installable products/services can be their own packages.
82
+
83
+ The Go service is:
84
+
85
+ @inneranimalmedia/agentsam-go-worker
86
+
87
+ The SDK discovers that package instead of assuming:
88
+
89
+ <sdk install>/apps/agentsam-go-worker
90
+
91
+ This lets a normal SDK tarball remain focused while preserving a single AgentSam user experience.
92
+
93
+ ## Local state boundary
94
+
95
+ Installed packages are source artifacts, not mutable user state.
96
+
97
+ Use:
98
+
99
+ <caller>/.agentsam/
100
+
101
+ for build/deploy receipts, local product projections, and transient proof artifacts.
102
+
103
+ Do not write runtime state into:
104
+
105
+ node_modules/@inneranimalmedia/...
106
+
107
+ ## Product/runtime boundary
108
+
109
+ User-facing products should declare runtime requirements rather than bundle complete daemons.
110
+
111
+ Local Studio ──┐
112
+ CAD Creator ───┼──► one agentsamd ─► capability inventory
113
+ Ecommerce ─────┘
114
+
115
+ Hosted services such as agentsam-go-worker remain services. agentsamd remains the user-machine execution runtime.
116
+
117
+ ## Distribution analytics: keep funnel stages separate
118
+
119
+ Do not turn package installation into hidden database access.
120
+
121
+ Measure distinct signals:
122
+
123
+ DISCOVERY
124
+ npm aggregate downloads
125
+ docs/site interest
126
+ ↓
127
+ ACTIVATION
128
+ AgentSam first run
129
+ Local Studio opened
130
+ agentsamd booted
131
+ ↓
132
+ ADOPTION
133
+ products/apps enabled
134
+ repositories registered
135
+ ↓
136
+ VALUE
137
+ successful runs
138
+ packages/deployments verified
139
+ ↓
140
+ RETENTION
141
+ returning active installations/accounts/projects
142
+ ↓
143
+ INFRA HEALTH
144
+ Workers
145
+ Go runtime
146
+ ExecOS
147
+ agentsamd
148
+ MCP
149
+
150
+ Npm download counts are distribution metrics, not unique-user counts.
151
+
152
+ Do not add a postinstall phone-home path. First-run/product telemetry should be disclosed/configurable and constrained to product facts. Do not collect home directories, working paths, repository names, git remotes, hostnames, usernames, command contents, credentials, or environment variables as activation telemetry.
153
+
154
+ If an anonymous installation identifier is used, generate a random local UUID; never derive it from hardware identifiers.
155
+
156
+ ## Telemetry authorities
157
+
158
+ Use separate authorities:
159
+
160
+ - npm/registry data — aggregate package distribution.
161
+ - AgentSam analytics ingestion service — validated activation/adoption/value events.
162
+ - inneranimalmedia-tail — InnerAnimalMedia runtime/Worker observability where Cloudflare Tail is the appropriate primitive.
163
+
164
+ Do not make inneranimalmedia-tail the install counter. Treat it as a registered infrastructure primitive in SAM's topology and assign it runtime-observability responsibilities deliberately.
165
+
166
+ A future analytics ingestion path can normalize events from CLI, Local Studio, agentsamd, hosted services, npm metric collectors, and Tail into aggregate analytics without granting distributed clients direct D1 access.
167
+
168
+ ## Scale objective
169
+
170
+ The purpose is not to collapse dozens of repositories and Workers into one monolith.
171
+
172
+ The objective is to give every asset a known identity, capabilities, dependencies, health state, deployment receipt, ownership boundary, and protocol relationship so SAM can operate a large software estate systematically.
173
+
174
+ Protect this rule:
175
+
176
+ One authority per concept; multiple implementations/adapters where appropriate.
@@ -0,0 +1,282 @@
1
+ # AgentSam Go Runtime
2
+
3
+ ## Purpose
4
+
5
+ Go is AgentSam's native deterministic machinery layer. It is reused by two different ownership surfaces:
6
+
7
+ - agentsam-go-worker — an independently deployed hosted/self-host service.
8
+ - agentsamd — the user-machine runtime that products can share.
9
+
10
+ Those are not the same product. They should reuse protocol-compatible native core code without sharing deployment authority.
11
+
12
+ The TypeScript/protocol layer remains canonical contract authority.
13
+
14
+ ## Current hosted-service topology
15
+
16
+ AgentSam / SAM
17
+ |
18
+ v
19
+ canonical runtime protocol
20
+ |
21
+ v
22
+ Cloudflare Worker
23
+ |
24
+ v
25
+ Go Container
26
+
27
+ The Worker owns edge routing and deploy-time identity. The container owns native Go execution.
28
+
29
+ Normal AgentSam users consume the official hosted service where appropriate. They do not need to deploy this Worker just to use AgentSam.
30
+
31
+ ## User-machine topology
32
+
33
+ Local Studio ──┐
34
+ CAD Creator ───┼──► agentsamd
35
+ Ecommerce ─────┘ |
36
+ ├─ filesystem
37
+ ├─ watcher
38
+ ├─ Merkle
39
+ ├─ jobs
40
+ ├─ PTY/process
41
+ └─ activity
42
+
43
+ Products declare runtime capabilities. They do not each clone a complete daemon.
44
+
45
+ ## Contract authority
46
+
47
+ TypeScript/protocol remains canonical. Go implements shared contracts.
48
+
49
+ Consequences:
50
+
51
+ - no Go-only public ErrorEnvelope,
52
+ - no Go-only activity vocabulary,
53
+ - no Go-only planning semantics,
54
+ - no browser contract moves into Go,
55
+ - shared behavior is judged by conformance fixtures.
56
+
57
+ Rust/Tauri remains responsible for desktop-shell concerns such as folder selection, keychain, application lifecycle, updater, deep links, and launching/supervising agentsamd.
58
+
59
+ ## Current Go service capabilities
60
+
61
+ The deployed service currently owns:
62
+
63
+ - health/build identity,
64
+ - runtime inventory,
65
+ - capability inventory,
66
+ - deterministic SHA-256,
67
+ - deterministic static inspection,
68
+ - canonical AgentSam ErrorEnvelope-compatible request failures.
69
+
70
+ The Worker exposes edge health separately so operators can distinguish edge availability from native-container health.
71
+
72
+ ## Source and build identity
73
+
74
+ Source identity must remain truthful across development and distribution.
75
+
76
+ Maintainer checkout:
77
+
78
+ git:<commit-sha>
79
+
80
+ Published service artifact:
81
+
82
+ npm:@inneranimalmedia/agentsam-go-worker@<version>
83
+
84
+ Fallback only when neither authority is available:
85
+
86
+ tree:<deterministic-source-digest>
87
+
88
+ The build receipt also records the deterministic source-tree digest.
89
+
90
+ The local/native build proof requires:
91
+
92
+ - go test ./...,
93
+ - go vet ./...,
94
+ - native binary build,
95
+ - SHA-256 binary digest,
96
+ - native process boot,
97
+ - source identity match,
98
+ - health/runtime/capabilities/hash/inspect probes,
99
+ - canonical malformed-request ErrorEnvelope,
100
+ - graceful shutdown.
101
+
102
+ The Linux verification container receives the same intended source identity and must be linux/amd64 and nonroot.
103
+
104
+ The live deployment is not accepted merely because Wrangler returned success. External edge and native health must report the intended source identity.
105
+
106
+ ## Distribution boundary
107
+
108
+ The Go service is packaged independently:
109
+
110
+ @inneranimalmedia/agentsam-go-worker
111
+
112
+ The SDK does not assume its own npm tarball contains apps/agentsam-go-worker.
113
+
114
+ Installed-package discovery resolves the service package through Node package resolution. User state belongs under the caller's .agentsam directory; the package under node_modules remains source-only.
115
+
116
+ ## Cloudflare account authority
117
+
118
+ Before any self-host or official live deployment AgentSam asks Wrangler for identity:
119
+
120
+ wrangler whoami --json
121
+
122
+ The deploy path fails closed when authentication is missing, when no account is available, or when multiple accounts exist without an explicit selection.
123
+
124
+ The chosen account is observable and bound into the Wrangler process with CLOUDFLARE_ACCOUNT_ID.
125
+
126
+ No distributed package contains an InnerAnimalMedia production credential.
127
+
128
+ ## Self-host lifecycle
129
+
130
+ Self-host is an advanced opt-in path:
131
+
132
+ agentsam go --cloudflare agentsam-go-worker \
133
+ --account <user-cloudflare-account-id> \
134
+ --yes
135
+
136
+ The sequence is:
137
+
138
+ installed or development service source
139
+ |
140
+ v
141
+ source identity
142
+ |
143
+ v
144
+ Go tests + vet
145
+ |
146
+ v
147
+ native binary + digest
148
+ |
149
+ v
150
+ native boot/probes/shutdown
151
+ |
152
+ v
153
+ linux/amd64 nonroot container
154
+ |
155
+ v
156
+ container boot/probes/shutdown
157
+ |
158
+ v
159
+ explicit USER Cloudflare account
160
+ |
161
+ v
162
+ Wrangler deploy
163
+ |
164
+ v
165
+ Cloudflare deployment/version identity
166
+ |
167
+ v
168
+ external edge + native probes
169
+ |
170
+ v
171
+ deployment receipt
172
+ |
173
+ v
174
+ local AgentSam registry
175
+
176
+ Self-host never mutates inneranimalmedia-business.
177
+
178
+ ## InnerAnimalMedia official-release lifecycle
179
+
180
+ InnerAnimalMedia product registration is a separate authority:
181
+
182
+ AGENTSAM_INNERANIMALMEDIA_OFFICIAL_RELEASE=1 \
183
+ agentsam go --cloudflare agentsam-go-worker \
184
+ --official-release \
185
+ --account <iam-account-id> \
186
+ --yes
187
+
188
+ Requirements:
189
+
190
+ - maintainer/development source,
191
+ - explicit InnerAnimalMedia release guard,
192
+ - explicit InnerAnimalMedia Cloudflare account,
193
+ - healthy live probes,
194
+ - deployment/version identity,
195
+ - only then remote agentsam_products and asset_relationships projection.
196
+
197
+ The InnerAnimalMedia D1 adapter lives in official-registry.js specifically so generic self-host deployment does not import InnerAnimalMedia registration as a default side effect.
198
+
199
+ ## Dry run
200
+
201
+ Dry run is:
202
+
203
+ agentsam go --cloudflare agentsam-go-worker \
204
+ --dry-run \
205
+ --account <cloudflare-account-id>
206
+
207
+ It still performs Go build/probes, Linux container build/probes, Wrangler identity/account resolution, and Wrangler deploy --dry-run.
208
+
209
+ It does not create a live deployment and does not mutate InnerAnimalMedia D1.
210
+
211
+ Skip-deploy is a different explicit local-only mode and cannot be used as deployment proof.
212
+
213
+ ## Errors and recovery
214
+
215
+ Go preserves native evidence when present, but public failures classify through AgentSam's canonical ErrorEnvelope.
216
+
217
+ Recovery remains centralized in AgentSam. ErrorEnvelope feeds planRecovery / agentsam.recovery.v1 semantics used by other runtimes. Go does not own an independent retry brain.
218
+
219
+ Unsafe writes with unknown side effects must reconcile before retry. Provider/model fallback follows shared semantic-compatibility rules.
220
+
221
+ ## Activity
222
+
223
+ Native operations feed agentsam.activity.v1; Go does not create a separate event vocabulary.
224
+
225
+ Near-term events include runtime.started, filesystem.read, filesystem.write, watcher.resync, merkle.updated, job.started, job.completed, and runtime.degraded. Studio Activity / Computational Hyperspace and the CLI in-flight TUI consume the same stream.
226
+
227
+ ## Graduation toward agentsamd
228
+
229
+ The reusable native core should progressively own:
230
+
231
+ runtime/
232
+ workspace/
233
+ filesystem/
234
+ watch/
235
+ hash/
236
+ merkle/
237
+ jobs/
238
+ runtimeinfo/
239
+ health/
240
+
241
+ Executables/adapters reuse that core:
242
+
243
+ cmd/server
244
+ cmd/agentsamd
245
+
246
+ The same core can support Cloudflare Container, local daemon, and remote daemon execution. Deployment/auth/ownership adapters remain target-specific.
247
+
248
+ ## Conformance
249
+
250
+ Where TypeScript and Go implement the same protocol, use the same fixtures.
251
+
252
+ First conformance targets:
253
+
254
+ - runtime response shape,
255
+ - SHA-256 result,
256
+ - ErrorEnvelope classification for invalid input,
257
+ - path containment,
258
+ - version conflict semantics.
259
+
260
+ Then:
261
+
262
+ - file-watch events,
263
+ - Merkle roots/deltas,
264
+ - workspace filesystem behavior,
265
+ - cancellable job behavior.
266
+
267
+ A language-specific reinterpretation of a canonical contract is a failure.
268
+
269
+ ## Next native capabilities
270
+
271
+ After the deployed service seed remains boring and repeatable, graduate capabilities in this order:
272
+
273
+ 1. workspace filesystem behind workspace-fs.v1,
274
+ 2. native filesystem watcher,
275
+ 3. SHA/Merkle branch updates,
276
+ 4. runtime capability/health state,
277
+ 5. cancellable durable jobs,
278
+ 6. PTY coordination where it belongs.
279
+
280
+ A* remains TypeScript-canonical until real workload measurements justify a native planner.
281
+
282
+ See AGENTSAM_DISTRIBUTION_OWNERSHIP.md for package, credential, registry, and telemetry ownership boundaries.