@robota-sdk/pack-coding 3.0.0-beta.85 → 3.0.0-beta.87

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,42 @@
1
1
  # @robota-sdk/pack-coding
2
2
 
3
+ ## 3.0.0-beta.87
4
+
5
+ ### Patch Changes
6
+
7
+ - Release the migrated Robota product with its public SDK namespace, robota command, compatible SDK exports, internal product configuration, and verified CLI startup and delivery corrections.
8
+ - Updated dependencies
9
+ - Updated dependencies [7d9cc66]
10
+ - Updated dependencies [7d9cc66]
11
+ - Updated dependencies [7d9cc66]
12
+ - Updated dependencies [7d9cc66]
13
+ - Updated dependencies [7d9cc66]
14
+ - Updated dependencies [7d9cc66]
15
+ - Updated dependencies [7d9cc66]
16
+ - Updated dependencies [7d9cc66]
17
+ - Updated dependencies [7d9cc66]
18
+ - Updated dependencies [7d9cc66]
19
+ - Updated dependencies [7d9cc66]
20
+ - Updated dependencies [7d9cc66]
21
+ - Updated dependencies [7d9cc66]
22
+ - Updated dependencies [7d9cc66]
23
+ - Updated dependencies [7d9cc66]
24
+ - @robota-sdk/agent-capability-pack@3.0.0-beta.87
25
+ - @robota-sdk/agent-command@3.0.0-beta.87
26
+ - @robota-sdk/agent-framework@3.0.0-beta.87
27
+ - @robota-sdk/agent-tool-defaults@3.0.0-beta.87
28
+ - @robota-sdk/agent-tools@3.0.0-beta.87
29
+
30
+ ## 3.0.0-beta.86
31
+
32
+ ### Patch Changes
33
+
34
+ - @robota-sdk/agent-capability-pack@3.0.0-beta.86
35
+ - @robota-sdk/agent-command@3.0.0-beta.86
36
+ - @robota-sdk/agent-framework@3.0.0-beta.86
37
+ - @robota-sdk/agent-tool-defaults@3.0.0-beta.86
38
+ - @robota-sdk/agent-tools@3.0.0-beta.86
39
+
3
40
  ## 3.0.0-beta.85
4
41
 
5
42
  ### Patch Changes
@@ -116,7 +153,7 @@
116
153
 
117
154
  ### Major Changes
118
155
 
119
- - 0116a29: ARCH-006 completion — robota's capability packs now OWN its tool surface, and `pack-coding` is built by a
156
+ - 0116a29: ARCH-006 completion — Robota's capability packs now OWN its tool surface, and `pack-coding` is built by a
120
157
  context-bound factory.
121
158
 
122
159
  - **`@robota-sdk/pack-coding` (BREAKING)** — the module-level `codingPack` constant is **removed** and
@@ -130,9 +167,9 @@
130
167
  products in one process get independently-scoped file tools. Migration: replace `codingPack` with
131
168
  `createCodingPack({ cwd: process.cwd() })`.
132
169
  - **`@robota-sdk/agent-cli`** — `robota`'s packs are built from the shell's resolved `cwd`
133
- (`createRobotaPacks({ cwd })`) before command setup, and the runtime seam passes
134
- `ROBOTA_PACKS_OWN_TOOL_SURFACE` (an empty `defaultTools`) so the framework's `createDefaultTools()` tier
135
- is REPLACED. Every tool robota runs now arrives from a capability pack: dropping a pack drops its tools,
170
+ (`createProductCapabilityPacks({ cwd })`) before command setup, and the runtime seam passes
171
+ `PRODUCT_PACKS_OWN_TOOL_SURFACE` (an empty `defaultTools`) so the framework's `createDefaultTools()` tier
172
+ is REPLACED. Every tool Robota runs now arrives from a capability pack: dropping a pack drops its tools,
136
173
  exactly as it already dropped its command modules and subagents.
137
174
  - **`@robota-sdk/agent-transport` / `@robota-sdk/agent-transport-tui`** — forward the optional
138
175
  `additionalTools` and `defaultTools` through the headless and TUI channels, mirroring the existing
@@ -156,9 +193,9 @@
156
193
  construction to `agent-framework`'s `buildRuntimeSession` seam (never re-implemented). Its neutrality is
157
194
  enforced by three mechanical guards (dependency-graph neutrality, purity/no-IO, no product-name
158
195
  conditionals), coupling the amended project-structure L129 carve-out to the guards.
159
- - **`@robota-sdk/pack-coding`** (new) — robota's coding capability as one `ICapabilityPack` (the built-in
196
+ - **`@robota-sdk/pack-coding`** (new) — Robota's coding capability as one `ICapabilityPack` (the built-in
160
197
  coding tools, the `/shell` + `/editor` command modules, and the coding subagents) — the additive-axis
161
- proof and robota's first pack.
198
+ proof and Robota's first pack.
162
199
  - **`@robota-sdk/agent-preset`** — adds `createPresetRegistry`, a per-call instance-scoped resolver that
163
200
  never mutates the module-level external-preset global (consumed by `assembleProduct`).
164
201
 
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Robota's coding capability as a single
4
4
  [`ICapabilityPack`](../agent-capability-pack/README.md): the built-in coding tools, the coding command
5
5
  modules, and the coding subagents in one unit that `assembleProduct` can add to any product. The
6
- `robota` CLI uses it for its own coding assistant.
6
+ The host CLI can compose it for its coding assistant.
7
7
 
8
8
  ## Installation
9
9
 
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@robota-sdk/agent-command"),t=require("@robota-sdk/agent-framework"),n=require("@robota-sdk/agent-tool-defaults");function r(r){return{id:`coding`,title:`Coding`,description:`Robota's built-in coding capability: file/shell tools, /shell + /editor + /git commands, and the coding subagents.`,tools:(0,n.createDefaultTools)({cwd:r.cwd,...r.shellExecutable===void 0?{}:{shellExecutable:r.shellExecutable},...r.sandboxClient?{sandboxClient:r.sandboxClient}:{}}),commandModules:[(0,e.createShellCommandModule)(r.shellExecutable),(0,e.createEditorCommandModule)(r.editorTemporaryDirectoryPrefix),(0,e.createGitCommandModule)()],subagents:t.BUILT_IN_AGENTS}}exports.createCodingPack=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@robota-sdk/agent-command"),t=require("@robota-sdk/agent-framework"),n=require("@robota-sdk/agent-tool-defaults");function r(r){return{id:`coding`,title:`Coding`,description:`Built-in coding capability: file/shell tools, /shell + /editor + /git commands, and the coding subagents.`,tools:(0,n.createDefaultTools)({cwd:r.cwd,httpUserAgent:r.httpUserAgent,...r.shellExecutable===void 0?{}:{shellExecutable:r.shellExecutable},...r.sandboxClient?{sandboxClient:r.sandboxClient}:{}}),commandModules:[(0,e.createShellCommandModule)(r.shellExecutable),(0,e.createEditorCommandModule)(r.editorTemporaryDirectoryPrefix),(0,e.createGitCommandModule)()],subagents:t.BUILT_IN_AGENTS}}exports.createCodingPack=r;
@@ -2,7 +2,7 @@ import { ICapabilityPack } from "@robota-sdk/agent-capability-pack";
2
2
  import { ISandboxClient } from "@robota-sdk/agent-tools";
3
3
  //#region src/coding-pack.d.ts
4
4
  /**
5
- * The session context robota's coding tools are bound to.
5
+ * The session context agent's coding tools are bound to.
6
6
  *
7
7
  * `cwd` is **required, not optional** — and that is the whole point of this factory. `agent-tools`'
8
8
  * `checkPathWithinCwd` USED TO BE a no-op when `cwd` was `undefined`, so file tools constructed with no
@@ -19,6 +19,8 @@ import { ISandboxClient } from "@robota-sdk/agent-tools";
19
19
  interface ICodingPackOptions {
20
20
  /** Product-host shell choice for tools and the interactive /shell command. */
21
21
  shellExecutable?: string;
22
+ /** HTTP identity selected by the product host. */
23
+ httpUserAgent?: string;
22
24
  /** Product-owned prefix for the interactive editor's temporary directory. */
23
25
  editorTemporaryDirectoryPrefix?: string;
24
26
  /**
@@ -34,10 +36,10 @@ interface ICodingPackOptions {
34
36
  sandboxClient?: ISandboxClient;
35
37
  }
36
38
  /**
37
- * Build robota's coding capability as a single {@link ICapabilityPack}, bound to one session context.
39
+ * Build agent's coding capability as a single {@link ICapabilityPack}, bound to one session context.
38
40
  *
39
- * This is the additive-axis proof for ARCH-005 and robota's first capability pack: a pack can bundle
40
- * robota's real coding capability (tools + command modules + subagents) and be composed additively by
41
+ * This is the additive-axis proof for ARCH-005 and agent's first capability pack: a pack can bundle
42
+ * agent's real coding capability (tools + command modules + subagents) and be composed additively by
41
43
  * `assembleProduct` on top of any product's base — and, since ARCH-006, can OWN the product's tool surface
42
44
  * outright when the profile suppresses the framework tier with `defaultTools: []`.
43
45
  *
@@ -51,7 +53,7 @@ interface ICodingPackOptions {
51
53
  * The relationship is structural now, so there is no drift left to pin.
52
54
  * - **commandModules** — the coding command modules: `/shell`, `/editor` and `/git` (the capability-level
53
55
  * command modules, distinct from product-shell/settings/provider command infrastructure).
54
- * - **subagents** — robota's built-in coding subagents (`general-purpose`, `Explore`, `Plan`).
56
+ * - **subagents** — agent's built-in coding subagents (`general-purpose`, `Explore`, `Plan`).
55
57
  *
56
58
  * This pack contributes only when a product profile lists it (opt-in); every contributed command/tool runs
57
59
  * only through the permission-gated runtime at call time.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/coding-pack.ts"],"mappings":";;;;;;;;;;;;;;;;;;UA0BiB;;EAEf;;EAEA;;;;;EAKA;;;;;;EAMA,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BF,iBAAiB,SAAS,qBAAqB"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/coding-pack.ts"],"mappings":";;;;;;;;;;;;;;;;;;UA0BiB;;EAEf;;EAEA;;EAEA;;;;;EAKA;;;;;;EAMA,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BF,iBAAiB,SAAS,qBAAqB"}
@@ -2,7 +2,7 @@ import { ICapabilityPack } from "@robota-sdk/agent-capability-pack";
2
2
  import { ISandboxClient } from "@robota-sdk/agent-tools";
3
3
  //#region src/coding-pack.d.ts
4
4
  /**
5
- * The session context robota's coding tools are bound to.
5
+ * The session context agent's coding tools are bound to.
6
6
  *
7
7
  * `cwd` is **required, not optional** — and that is the whole point of this factory. `agent-tools`'
8
8
  * `checkPathWithinCwd` USED TO BE a no-op when `cwd` was `undefined`, so file tools constructed with no
@@ -19,6 +19,8 @@ import { ISandboxClient } from "@robota-sdk/agent-tools";
19
19
  interface ICodingPackOptions {
20
20
  /** Product-host shell choice for tools and the interactive /shell command. */
21
21
  shellExecutable?: string;
22
+ /** HTTP identity selected by the product host. */
23
+ httpUserAgent?: string;
22
24
  /** Product-owned prefix for the interactive editor's temporary directory. */
23
25
  editorTemporaryDirectoryPrefix?: string;
24
26
  /**
@@ -34,10 +36,10 @@ interface ICodingPackOptions {
34
36
  sandboxClient?: ISandboxClient;
35
37
  }
36
38
  /**
37
- * Build robota's coding capability as a single {@link ICapabilityPack}, bound to one session context.
39
+ * Build agent's coding capability as a single {@link ICapabilityPack}, bound to one session context.
38
40
  *
39
- * This is the additive-axis proof for ARCH-005 and robota's first capability pack: a pack can bundle
40
- * robota's real coding capability (tools + command modules + subagents) and be composed additively by
41
+ * This is the additive-axis proof for ARCH-005 and agent's first capability pack: a pack can bundle
42
+ * agent's real coding capability (tools + command modules + subagents) and be composed additively by
41
43
  * `assembleProduct` on top of any product's base — and, since ARCH-006, can OWN the product's tool surface
42
44
  * outright when the profile suppresses the framework tier with `defaultTools: []`.
43
45
  *
@@ -51,7 +53,7 @@ interface ICodingPackOptions {
51
53
  * The relationship is structural now, so there is no drift left to pin.
52
54
  * - **commandModules** — the coding command modules: `/shell`, `/editor` and `/git` (the capability-level
53
55
  * command modules, distinct from product-shell/settings/provider command infrastructure).
54
- * - **subagents** — robota's built-in coding subagents (`general-purpose`, `Explore`, `Plan`).
56
+ * - **subagents** — agent's built-in coding subagents (`general-purpose`, `Explore`, `Plan`).
55
57
  *
56
58
  * This pack contributes only when a product profile lists it (opt-in); every contributed command/tool runs
57
59
  * only through the permission-gated runtime at call time.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/coding-pack.ts"],"mappings":";;;;;;;;;;;;;;;;;;UA0BiB;;EAEf;;EAEA;;;;;EAKA;;;;;;EAMA,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BF,iBAAiB,SAAS,qBAAqB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/coding-pack.ts"],"mappings":";;;;;;;;;;;;;;;;;;UA0BiB;;EAEf;;EAEA;;EAEA;;;;;EAKA;;;;;;EAMA,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BF,iBAAiB,SAAS,qBAAqB"}
@@ -1,2 +1,2 @@
1
- import{createEditorCommandModule as e,createGitCommandModule as t,createShellCommandModule as n}from"@robota-sdk/agent-command";import{BUILT_IN_AGENTS as r}from"@robota-sdk/agent-framework";import{createDefaultTools as i}from"@robota-sdk/agent-tool-defaults";function a(a){return{id:`coding`,title:`Coding`,description:`Robota's built-in coding capability: file/shell tools, /shell + /editor + /git commands, and the coding subagents.`,tools:i({cwd:a.cwd,...a.shellExecutable===void 0?{}:{shellExecutable:a.shellExecutable},...a.sandboxClient?{sandboxClient:a.sandboxClient}:{}}),commandModules:[n(a.shellExecutable),e(a.editorTemporaryDirectoryPrefix),t()],subagents:r}}export{a as createCodingPack};
1
+ import{createEditorCommandModule as e,createGitCommandModule as t,createShellCommandModule as n}from"@robota-sdk/agent-command";import{BUILT_IN_AGENTS as r}from"@robota-sdk/agent-framework";import{createDefaultTools as i}from"@robota-sdk/agent-tool-defaults";function a(a){return{id:`coding`,title:`Coding`,description:`Built-in coding capability: file/shell tools, /shell + /editor + /git commands, and the coding subagents.`,tools:i({cwd:a.cwd,httpUserAgent:a.httpUserAgent,...a.shellExecutable===void 0?{}:{shellExecutable:a.shellExecutable},...a.sandboxClient?{sandboxClient:a.sandboxClient}:{}}),commandModules:[n(a.shellExecutable),e(a.editorTemporaryDirectoryPrefix),t()],subagents:r}}export{a as createCodingPack};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/coding-pack.ts"],"sourcesContent":["import {\n createEditorCommandModule,\n createGitCommandModule,\n createShellCommandModule,\n} from '@robota-sdk/agent-command';\nimport { BUILT_IN_AGENTS } from '@robota-sdk/agent-framework';\nimport { createDefaultTools } from '@robota-sdk/agent-tool-defaults';\n\nimport type { ICapabilityPack } from '@robota-sdk/agent-capability-pack';\nimport type { ISandboxClient } from '@robota-sdk/agent-tools';\n\n/**\n * The session context robota's coding tools are bound to.\n *\n * `cwd` is **required, not optional** — and that is the whole point of this factory. `agent-tools`'\n * `checkPathWithinCwd` USED TO BE a no-op when `cwd` was `undefined`, so file tools constructed with no\n * options carried a DISARMED working-directory guard: their `Read` returned `/etc/hostname`. Before\n * ARCH-006 that was inert, because the framework's own context-bound default tier always won a name\n * collision. Once a product could hand the entire tool surface to its packs (`defaultTools: []`), a\n * context-free pack became an unsandboxed `Read`/`Write`/`Edit`.\n *\n * ARCH-010 has since fixed the layer below: the guard refuses when no root is configured, and the tool\n * factories require `cwd` themselves. This requirement is therefore no longer load-bearing on its own —\n * it is the precedent the audit's fix followed, and it stays because the scoping decision should be\n * impossible to forget at every layer, not only the lowest one.\n */\nexport interface ICodingPackOptions {\n /** Product-host shell choice for tools and the interactive /shell command. */\n shellExecutable?: string;\n /** Product-owned prefix for the interactive editor's temporary directory. */\n editorTemporaryDirectoryPrefix?: string;\n /**\n * Working-directory root the host file tools (`Read`/`Write`/`Edit`) are restricted to. Required: see\n * the interface note above. Pass the same value the session is assembled with.\n */\n cwd: string;\n /**\n * Optional provider sandbox client. Shell commands always run through it; file tools do only when its\n * filesystem is `separate` (then the sandbox is the isolation boundary and the host-only search tools\n * are withheld). With a `shared` filesystem, file tools stay on the host under the path guard.\n */\n sandboxClient?: ISandboxClient;\n}\n\n/**\n * Build robota's coding capability as a single {@link ICapabilityPack}, bound to one session context.\n *\n * This is the additive-axis proof for ARCH-005 and robota's first capability pack: a pack can bundle\n * robota's real coding capability (tools + command modules + subagents) and be composed additively by\n * `assembleProduct` on top of any product's base — and, since ARCH-006, can OWN the product's tool surface\n * outright when the profile suppresses the framework tier with `defaultTools: []`.\n *\n * - **tools** — `createDefaultTools()` from `@robota-sdk/agent-tool-defaults`, CONSUMED rather than\n * mirrored (ARCH-035). That set is shell/bash/read/write/edit/glob/grep/webFetch/webSearch/\n * askUserQuestion; the adapter-gated tools (`CodebaseRetrieval`, `Computer`) appear only when their\n * adapter or driver is supplied, and this pack supplies neither. Until ARCH-035 the list was rebuilt\n * here from the `@robota-sdk/agent-tools` factories and held to the defaults by a NAME-equality test\n * — a pin that let ARCH-021's first TC-05 pass while being unable to fail, because comparing names\n * cannot distinguish a pack-composed surface from an imported-default one when the two are pinned.\n * The relationship is structural now, so there is no drift left to pin.\n * - **commandModules** — the coding command modules: `/shell`, `/editor` and `/git` (the capability-level\n * command modules, distinct from product-shell/settings/provider command infrastructure).\n * - **subagents** — robota's built-in coding subagents (`general-purpose`, `Explore`, `Plan`).\n *\n * This pack contributes only when a product profile lists it (opt-in); every contributed command/tool runs\n * only through the permission-gated runtime at call time.\n *\n * **Per-call instances, deliberately.** Each call builds fresh tool and command-module objects bound to the\n * supplied context, so two products assembled in one process get independently-scoped file tools. There is\n * no module-level singleton: a shared constant could only ever be context-free, which is exactly the hazard\n * this factory exists to remove.\n */\nexport function createCodingPack(options: ICodingPackOptions): ICapabilityPack {\n const toolOptions = {\n cwd: options.cwd,\n ...(options.shellExecutable !== undefined ? { shellExecutable: options.shellExecutable } : {}),\n ...(options.sandboxClient ? { sandboxClient: options.sandboxClient } : {}),\n };\n\n return {\n id: 'coding',\n title: 'Coding',\n description:\n \"Robota's built-in coding capability: file/shell tools, /shell + /editor + /git commands, and the coding subagents.\",\n // ARCH-035: the always-present default set, consumed from its owner rather than rebuilt here.\n //\n // This list used to be hand-maintained, identical to `createDefaultTools()`'s always-present\n // tier, and the two were held together by a test asserting their NAMES matched. That pin is what\n // let ARCH-021's first TC-05 pass without being able to fail: comparing tool names cannot tell a\n // pack-composed surface from an imported-default one when the pack is pinned to the defaults.\n // Consuming the set makes the relationship structural, so there is nothing left to drift.\n //\n // The adapter-gated tools stay out, as before: `createDefaultTools` adds `CodebaseRetrieval` only\n // when given a `retrievalAdapter` and the Computer tools only when given a `computerDriver`, and\n // this pack supplies neither. SEC-007 still holds — `cwd` is REQUIRED here, so the file-tool\n // guard cannot be disarmed by omission, and the leaf threads it into every tool it builds.\n tools: createDefaultTools(toolOptions),\n commandModules: [\n createShellCommandModule(options.shellExecutable),\n createEditorCommandModule(options.editorTemporaryDirectoryPrefix),\n createGitCommandModule(),\n ],\n subagents: BUILT_IN_AGENTS,\n };\n}\n"],"mappings":"mQAwEA,SAAgB,EAAiB,EAA8C,CAO7E,MAAO,CACL,GAAI,SACJ,MAAO,SACP,YACE,qHAaF,MAAO,EAAmB,CAtB1B,IAAK,EAAQ,IACb,GAAI,EAAQ,kBAAoB,IAAA,GAA2D,CAAC,EAAhD,CAAE,gBAAiB,EAAQ,eAAgB,EACvF,GAAI,EAAQ,cAAgB,CAAE,cAAe,EAAQ,aAAc,EAAI,CAAC,CAoBpC,CAAC,EACrC,eAAgB,CACd,EAAyB,EAAQ,eAAe,EAChD,EAA0B,EAAQ,8BAA8B,EAChE,EAAuB,CACzB,EACA,UAAW,CACb,CACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/coding-pack.ts"],"sourcesContent":["import {\n createEditorCommandModule,\n createGitCommandModule,\n createShellCommandModule,\n} from '@robota-sdk/agent-command';\nimport { BUILT_IN_AGENTS } from '@robota-sdk/agent-framework';\nimport { createDefaultTools } from '@robota-sdk/agent-tool-defaults';\n\nimport type { ICapabilityPack } from '@robota-sdk/agent-capability-pack';\nimport type { ISandboxClient } from '@robota-sdk/agent-tools';\n\n/**\n * The session context agent's coding tools are bound to.\n *\n * `cwd` is **required, not optional** — and that is the whole point of this factory. `agent-tools`'\n * `checkPathWithinCwd` USED TO BE a no-op when `cwd` was `undefined`, so file tools constructed with no\n * options carried a DISARMED working-directory guard: their `Read` returned `/etc/hostname`. Before\n * ARCH-006 that was inert, because the framework's own context-bound default tier always won a name\n * collision. Once a product could hand the entire tool surface to its packs (`defaultTools: []`), a\n * context-free pack became an unsandboxed `Read`/`Write`/`Edit`.\n *\n * ARCH-010 has since fixed the layer below: the guard refuses when no root is configured, and the tool\n * factories require `cwd` themselves. This requirement is therefore no longer load-bearing on its own —\n * it is the precedent the audit's fix followed, and it stays because the scoping decision should be\n * impossible to forget at every layer, not only the lowest one.\n */\nexport interface ICodingPackOptions {\n /** Product-host shell choice for tools and the interactive /shell command. */\n shellExecutable?: string;\n /** HTTP identity selected by the product host. */\n httpUserAgent?: string;\n /** Product-owned prefix for the interactive editor's temporary directory. */\n editorTemporaryDirectoryPrefix?: string;\n /**\n * Working-directory root the host file tools (`Read`/`Write`/`Edit`) are restricted to. Required: see\n * the interface note above. Pass the same value the session is assembled with.\n */\n cwd: string;\n /**\n * Optional provider sandbox client. Shell commands always run through it; file tools do only when its\n * filesystem is `separate` (then the sandbox is the isolation boundary and the host-only search tools\n * are withheld). With a `shared` filesystem, file tools stay on the host under the path guard.\n */\n sandboxClient?: ISandboxClient;\n}\n\n/**\n * Build agent's coding capability as a single {@link ICapabilityPack}, bound to one session context.\n *\n * This is the additive-axis proof for ARCH-005 and agent's first capability pack: a pack can bundle\n * agent's real coding capability (tools + command modules + subagents) and be composed additively by\n * `assembleProduct` on top of any product's base — and, since ARCH-006, can OWN the product's tool surface\n * outright when the profile suppresses the framework tier with `defaultTools: []`.\n *\n * - **tools** — `createDefaultTools()` from `@robota-sdk/agent-tool-defaults`, CONSUMED rather than\n * mirrored (ARCH-035). That set is shell/bash/read/write/edit/glob/grep/webFetch/webSearch/\n * askUserQuestion; the adapter-gated tools (`CodebaseRetrieval`, `Computer`) appear only when their\n * adapter or driver is supplied, and this pack supplies neither. Until ARCH-035 the list was rebuilt\n * here from the `@robota-sdk/agent-tools` factories and held to the defaults by a NAME-equality test\n * — a pin that let ARCH-021's first TC-05 pass while being unable to fail, because comparing names\n * cannot distinguish a pack-composed surface from an imported-default one when the two are pinned.\n * The relationship is structural now, so there is no drift left to pin.\n * - **commandModules** — the coding command modules: `/shell`, `/editor` and `/git` (the capability-level\n * command modules, distinct from product-shell/settings/provider command infrastructure).\n * - **subagents** — agent's built-in coding subagents (`general-purpose`, `Explore`, `Plan`).\n *\n * This pack contributes only when a product profile lists it (opt-in); every contributed command/tool runs\n * only through the permission-gated runtime at call time.\n *\n * **Per-call instances, deliberately.** Each call builds fresh tool and command-module objects bound to the\n * supplied context, so two products assembled in one process get independently-scoped file tools. There is\n * no module-level singleton: a shared constant could only ever be context-free, which is exactly the hazard\n * this factory exists to remove.\n */\nexport function createCodingPack(options: ICodingPackOptions): ICapabilityPack {\n const toolOptions = {\n cwd: options.cwd,\n httpUserAgent: options.httpUserAgent,\n ...(options.shellExecutable !== undefined ? { shellExecutable: options.shellExecutable } : {}),\n ...(options.sandboxClient ? { sandboxClient: options.sandboxClient } : {}),\n };\n\n return {\n id: 'coding',\n title: 'Coding',\n description:\n \"Built-in coding capability: file/shell tools, /shell + /editor + /git commands, and the coding subagents.\",\n // ARCH-035: the always-present default set, consumed from its owner rather than rebuilt here.\n //\n // This list used to be hand-maintained, identical to `createDefaultTools()`'s always-present\n // tier, and the two were held together by a test asserting their NAMES matched. That pin is what\n // let ARCH-021's first TC-05 pass without being able to fail: comparing tool names cannot tell a\n // pack-composed surface from an imported-default one when the pack is pinned to the defaults.\n // Consuming the set makes the relationship structural, so there is nothing left to drift.\n //\n // The adapter-gated tools stay out, as before: `createDefaultTools` adds `CodebaseRetrieval` only\n // when given a `retrievalAdapter` and the Computer tools only when given a `computerDriver`, and\n // this pack supplies neither. SEC-007 still holds — `cwd` is REQUIRED here, so the file-tool\n // guard cannot be disarmed by omission, and the leaf threads it into every tool it builds.\n tools: createDefaultTools(toolOptions),\n commandModules: [\n createShellCommandModule(options.shellExecutable),\n createEditorCommandModule(options.editorTemporaryDirectoryPrefix),\n createGitCommandModule(),\n ],\n subagents: BUILT_IN_AGENTS,\n };\n}\n"],"mappings":"mQA0EA,SAAgB,EAAiB,EAA8C,CAQ7E,MAAO,CACL,GAAI,SACJ,MAAO,SACP,YACE,4GAaF,MAAO,EAAmB,CAvB1B,IAAK,EAAQ,IACb,cAAe,EAAQ,cACvB,GAAI,EAAQ,kBAAoB,IAAA,GAA2D,CAAC,EAAhD,CAAE,gBAAiB,EAAQ,eAAgB,EACvF,GAAI,EAAQ,cAAgB,CAAE,cAAe,EAAQ,aAAc,EAAI,CAAC,CAoBpC,CAAC,EACrC,eAAgB,CACd,EAAyB,EAAQ,eAAe,EAChD,EAA0B,EAAQ,8BAA8B,EAChE,EAAuB,CACzB,EACA,UAAW,CACb,CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robota-sdk/pack-coding",
3
- "version": "3.0.0-beta.85",
3
+ "version": "3.0.0-beta.87",
4
4
  "description": "Robota's coding capability pack — an ICapabilityPack bundling the built-in coding tools, coding command modules, and coding subagents",
5
5
  "type": "module",
6
6
  "main": "dist/node/index.js",
@@ -31,15 +31,6 @@
31
31
  },
32
32
  "./package.json": "./package.json"
33
33
  },
34
- "repository": {
35
- "type": "git",
36
- "url": "https://github.com/woojubb/robota.git",
37
- "directory": "packages/pack-coding"
38
- },
39
- "homepage": "https://docs.robota.io/en/packages/pack-coding/",
40
- "bugs": {
41
- "url": "https://github.com/woojubb/robota/issues"
42
- },
43
34
  "engines": {
44
35
  "node": ">=22.12.0"
45
36
  },
@@ -48,11 +39,11 @@
48
39
  "CHANGELOG.md"
49
40
  ],
50
41
  "dependencies": {
51
- "@robota-sdk/agent-capability-pack": "3.0.0-beta.85",
52
- "@robota-sdk/agent-framework": "3.0.0-beta.85",
53
- "@robota-sdk/agent-command": "3.0.0-beta.85",
54
- "@robota-sdk/agent-tool-defaults": "3.0.0-beta.85",
55
- "@robota-sdk/agent-tools": "3.0.0-beta.85"
42
+ "@robota-sdk/agent-capability-pack": "3.0.0-beta.87",
43
+ "@robota-sdk/agent-command": "3.0.0-beta.87",
44
+ "@robota-sdk/agent-framework": "3.0.0-beta.87",
45
+ "@robota-sdk/agent-tool-defaults": "3.0.0-beta.87",
46
+ "@robota-sdk/agent-tools": "3.0.0-beta.87"
56
47
  },
57
48
  "devDependencies": {
58
49
  "rimraf": "^5.0.10",
@@ -67,6 +58,14 @@
67
58
  "volta": {
68
59
  "extends": "../../package.json"
69
60
  },
61
+ "repository": {
62
+ "type": "git",
63
+ "url": "https://github.com/woojubb/robota"
64
+ },
65
+ "bugs": {
66
+ "url": "https://github.com/woojubb/robota/issues"
67
+ },
68
+ "homepage": "https://robota.io/",
70
69
  "scripts": {
71
70
  "build": "rimraf dist && tsdown",
72
71
  "build:js": "pnpm run build",