@robota-sdk/pack-coding 3.0.0-beta.100
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 +469 -0
- package/LICENSE +661 -0
- package/README.md +57 -0
- package/dist/node/index.cjs +1 -0
- package/dist/node/index.d.cts +74 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.d.ts +74 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +2 -0
- package/dist/node/index.js.map +1 -0
- package/package.json +79 -0
package/README.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# @robota-sdk/pack-coding
|
|
2
|
+
|
|
3
|
+
Robota's coding capability as a single
|
|
4
|
+
[`ICapabilityPack`](../agent-capability-pack/README.md): the built-in coding tools, the coding command
|
|
5
|
+
modules, and the coding subagents in one unit that `assembleProduct` can add to any product. The
|
|
6
|
+
The host CLI can compose it for its coding assistant.
|
|
7
|
+
|
|
8
|
+
## Installation
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm install @robota-sdk/pack-coding
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import { assembleProduct } from '@robota-sdk/agent-product';
|
|
18
|
+
import { createCodingPack } from '@robota-sdk/pack-coding';
|
|
19
|
+
import type { IAIProvider, IProviderDefinition } from '@robota-sdk/agent-core';
|
|
20
|
+
|
|
21
|
+
declare const providerDefinitions: readonly IProviderDefinition[];
|
|
22
|
+
declare const provider: IAIProvider;
|
|
23
|
+
|
|
24
|
+
const cwd = process.cwd();
|
|
25
|
+
const product = assembleProduct({
|
|
26
|
+
id: 'acme-assistant',
|
|
27
|
+
providerDefinitions,
|
|
28
|
+
// The coding tools, /shell + /editor + /git commands, and coding subagents. The file tools are
|
|
29
|
+
// scoped to the cwd you build the pack with.
|
|
30
|
+
packs: [createCodingPack({ cwd })],
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const session = product.buildRuntime({ session: { cwd, provider } });
|
|
34
|
+
void session;
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The pack bundles:
|
|
38
|
+
|
|
39
|
+
- **tools** — `Shell`, `Bash`, `Read`, `Write`, `Edit`, `Glob`, `Grep`, `WebFetch`, `WebSearch`,
|
|
40
|
+
`AskUserQuestion` (from `@robota-sdk/agent-tool-defaults`' `createDefaultTools`).
|
|
41
|
+
- **commandModules** — `/shell`, `/editor`, and `/git` (from `@robota-sdk/agent-command`).
|
|
42
|
+
- **subagents** — `general-purpose`, `Explore`, `Plan` (agent-framework's built-in agents).
|
|
43
|
+
|
|
44
|
+
`createCodingPack` passes its `cwd` and optional `sandboxClient` straight to the default tool factory,
|
|
45
|
+
so the pack adds, drops, or reorders none of those tools. Its other options are `shellExecutable` (the
|
|
46
|
+
shell for the tools and `/shell`) and `editorTemporaryDirectoryPrefix` (for `/editor`).
|
|
47
|
+
|
|
48
|
+
## Why a factory, and why `cwd` is required
|
|
49
|
+
|
|
50
|
+
There is deliberately **no context-free `codingPack` constant**. The tool layer refuses a missing
|
|
51
|
+
execution root, and this factory also requires `cwd` so each pack's file tools are scoped to the
|
|
52
|
+
session that constructs it. That matters most when a product hands its whole tool surface to packs by
|
|
53
|
+
passing `defaultTools: []` in the session options. See [`docs/SPEC.md`](./docs/SPEC.md).
|
|
54
|
+
|
|
55
|
+
## License
|
|
56
|
+
|
|
57
|
+
AGPL-3.0-only OR LicenseRef-Commercial
|
|
@@ -0,0 +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:`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}:{},...r.editorFiles?{editorFiles:r.editorFiles}:{}}),commandModules:[(0,e.createShellCommandModule)(r.shellExecutable),(0,e.createEditorCommandModule)(r.editorTemporaryDirectoryPrefix),(0,e.createGitCommandModule)()],subagents:t.BUILT_IN_AGENTS}}exports.createCodingPack=r;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ICapabilityPack } from "@robota-sdk/agent-capability-pack";
|
|
2
|
+
import { IEditorFileAccess, ISandboxClient } from "@robota-sdk/agent-tools";
|
|
3
|
+
//#region src/coding-pack.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* The session context agent's coding tools are bound to.
|
|
6
|
+
*
|
|
7
|
+
* `cwd` is **required, not optional** — and that is the whole point of this factory. `agent-tools`'
|
|
8
|
+
* `checkPathWithinCwd` USED TO BE a no-op when `cwd` was `undefined`, so file tools constructed with no
|
|
9
|
+
* options carried a DISARMED working-directory guard: their `Read` returned `/etc/hostname`. Before
|
|
10
|
+
* ARCH-006 that was inert, because the framework's own context-bound default tier always won a name
|
|
11
|
+
* collision. Once a product could hand the entire tool surface to its packs (`defaultTools: []`), a
|
|
12
|
+
* context-free pack became an unsandboxed `Read`/`Write`/`Edit`.
|
|
13
|
+
*
|
|
14
|
+
* ARCH-010 has since fixed the layer below: the guard refuses when no root is configured, and the tool
|
|
15
|
+
* factories require `cwd` themselves. This requirement is therefore no longer load-bearing on its own —
|
|
16
|
+
* it is the precedent the audit's fix followed, and it stays because the scoping decision should be
|
|
17
|
+
* impossible to forget at every layer, not only the lowest one.
|
|
18
|
+
*/
|
|
19
|
+
interface ICodingPackOptions {
|
|
20
|
+
/** Product-host shell choice for tools and the interactive /shell command. */
|
|
21
|
+
shellExecutable?: string;
|
|
22
|
+
/** HTTP identity selected by the product host. */
|
|
23
|
+
httpUserAgent?: string;
|
|
24
|
+
/** Product-owned prefix for the interactive editor's temporary directory. */
|
|
25
|
+
editorTemporaryDirectoryPrefix?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Working-directory root the host file tools (`Read`/`Write`/`Edit`) are restricted to. Required: see
|
|
28
|
+
* the interface note above. Pass the same value the session is assembled with.
|
|
29
|
+
*/
|
|
30
|
+
cwd: string;
|
|
31
|
+
/**
|
|
32
|
+
* Optional provider sandbox client. Shell commands always run through it; file tools do only when its
|
|
33
|
+
* filesystem is `separate` (then the sandbox is the isolation boundary and the host-only search tools
|
|
34
|
+
* are withheld). With a `shared` filesystem, file tools stay on the host under the path guard.
|
|
35
|
+
*/
|
|
36
|
+
sandboxClient?: ISandboxClient;
|
|
37
|
+
/**
|
|
38
|
+
* An editor that has the workspace open, asked at each call: the host file tools read and write
|
|
39
|
+
* through what it offers. Absent, or answering `undefined`, means the disk.
|
|
40
|
+
*/
|
|
41
|
+
editorFiles?: () => IEditorFileAccess | undefined;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build agent's coding capability as a single {@link ICapabilityPack}, bound to one session context.
|
|
45
|
+
*
|
|
46
|
+
* This is the additive-axis proof for ARCH-005 and agent's first capability pack: a pack can bundle
|
|
47
|
+
* agent's real coding capability (tools + command modules + subagents) and be composed additively by
|
|
48
|
+
* `assembleProduct` on top of any product's base — and, since ARCH-006, can OWN the product's tool surface
|
|
49
|
+
* outright when the profile suppresses the framework tier with `defaultTools: []`.
|
|
50
|
+
*
|
|
51
|
+
* - **tools** — `createDefaultTools()` from `@robota-sdk/agent-tool-defaults`, CONSUMED rather than
|
|
52
|
+
* mirrored (ARCH-035). That set is shell/bash/read/write/edit/glob/grep/webFetch/webSearch/
|
|
53
|
+
* askUserQuestion; the adapter-gated tools (`CodebaseRetrieval`, `Computer`) appear only when their
|
|
54
|
+
* adapter or driver is supplied, and this pack supplies neither. Until ARCH-035 the list was rebuilt
|
|
55
|
+
* here from the `@robota-sdk/agent-tools` factories and held to the defaults by a NAME-equality test
|
|
56
|
+
* — a pin that let ARCH-021's first TC-05 pass while being unable to fail, because comparing names
|
|
57
|
+
* cannot distinguish a pack-composed surface from an imported-default one when the two are pinned.
|
|
58
|
+
* The relationship is structural now, so there is no drift left to pin.
|
|
59
|
+
* - **commandModules** — the coding command modules: `/shell`, `/editor` and `/git` (the capability-level
|
|
60
|
+
* command modules, distinct from product-shell/settings/provider command infrastructure).
|
|
61
|
+
* - **subagents** — agent's built-in coding subagents (`general-purpose`, `Explore`, `Plan`).
|
|
62
|
+
*
|
|
63
|
+
* This pack contributes only when a product profile lists it (opt-in); every contributed command/tool runs
|
|
64
|
+
* only through the permission-gated runtime at call time.
|
|
65
|
+
*
|
|
66
|
+
* **Per-call instances, deliberately.** Each call builds fresh tool and command-module objects bound to the
|
|
67
|
+
* supplied context, so two products assembled in one process get independently-scoped file tools. There is
|
|
68
|
+
* no module-level singleton: a shared constant could only ever be context-free, which is exactly the hazard
|
|
69
|
+
* this factory exists to remove.
|
|
70
|
+
*/
|
|
71
|
+
declare function createCodingPack(options: ICodingPackOptions): ICapabilityPack;
|
|
72
|
+
//#endregion
|
|
73
|
+
export { type ICodingPackOptions, createCodingPack };
|
|
74
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../src/coding-pack.ts"],"mappings":";;;;;;;;;;;;;;;;;;UA0BiB;;EAEf;;EAEA;;EAEA;;;;;EAKA;;;;;;EAMA,gBAAgB;;;;;EAKhB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BN,iBAAiB,SAAS,qBAAqB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ICapabilityPack } from "@robota-sdk/agent-capability-pack";
|
|
2
|
+
import { IEditorFileAccess, ISandboxClient } from "@robota-sdk/agent-tools";
|
|
3
|
+
//#region src/coding-pack.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* The session context agent's coding tools are bound to.
|
|
6
|
+
*
|
|
7
|
+
* `cwd` is **required, not optional** — and that is the whole point of this factory. `agent-tools`'
|
|
8
|
+
* `checkPathWithinCwd` USED TO BE a no-op when `cwd` was `undefined`, so file tools constructed with no
|
|
9
|
+
* options carried a DISARMED working-directory guard: their `Read` returned `/etc/hostname`. Before
|
|
10
|
+
* ARCH-006 that was inert, because the framework's own context-bound default tier always won a name
|
|
11
|
+
* collision. Once a product could hand the entire tool surface to its packs (`defaultTools: []`), a
|
|
12
|
+
* context-free pack became an unsandboxed `Read`/`Write`/`Edit`.
|
|
13
|
+
*
|
|
14
|
+
* ARCH-010 has since fixed the layer below: the guard refuses when no root is configured, and the tool
|
|
15
|
+
* factories require `cwd` themselves. This requirement is therefore no longer load-bearing on its own —
|
|
16
|
+
* it is the precedent the audit's fix followed, and it stays because the scoping decision should be
|
|
17
|
+
* impossible to forget at every layer, not only the lowest one.
|
|
18
|
+
*/
|
|
19
|
+
interface ICodingPackOptions {
|
|
20
|
+
/** Product-host shell choice for tools and the interactive /shell command. */
|
|
21
|
+
shellExecutable?: string;
|
|
22
|
+
/** HTTP identity selected by the product host. */
|
|
23
|
+
httpUserAgent?: string;
|
|
24
|
+
/** Product-owned prefix for the interactive editor's temporary directory. */
|
|
25
|
+
editorTemporaryDirectoryPrefix?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Working-directory root the host file tools (`Read`/`Write`/`Edit`) are restricted to. Required: see
|
|
28
|
+
* the interface note above. Pass the same value the session is assembled with.
|
|
29
|
+
*/
|
|
30
|
+
cwd: string;
|
|
31
|
+
/**
|
|
32
|
+
* Optional provider sandbox client. Shell commands always run through it; file tools do only when its
|
|
33
|
+
* filesystem is `separate` (then the sandbox is the isolation boundary and the host-only search tools
|
|
34
|
+
* are withheld). With a `shared` filesystem, file tools stay on the host under the path guard.
|
|
35
|
+
*/
|
|
36
|
+
sandboxClient?: ISandboxClient;
|
|
37
|
+
/**
|
|
38
|
+
* An editor that has the workspace open, asked at each call: the host file tools read and write
|
|
39
|
+
* through what it offers. Absent, or answering `undefined`, means the disk.
|
|
40
|
+
*/
|
|
41
|
+
editorFiles?: () => IEditorFileAccess | undefined;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build agent's coding capability as a single {@link ICapabilityPack}, bound to one session context.
|
|
45
|
+
*
|
|
46
|
+
* This is the additive-axis proof for ARCH-005 and agent's first capability pack: a pack can bundle
|
|
47
|
+
* agent's real coding capability (tools + command modules + subagents) and be composed additively by
|
|
48
|
+
* `assembleProduct` on top of any product's base — and, since ARCH-006, can OWN the product's tool surface
|
|
49
|
+
* outright when the profile suppresses the framework tier with `defaultTools: []`.
|
|
50
|
+
*
|
|
51
|
+
* - **tools** — `createDefaultTools()` from `@robota-sdk/agent-tool-defaults`, CONSUMED rather than
|
|
52
|
+
* mirrored (ARCH-035). That set is shell/bash/read/write/edit/glob/grep/webFetch/webSearch/
|
|
53
|
+
* askUserQuestion; the adapter-gated tools (`CodebaseRetrieval`, `Computer`) appear only when their
|
|
54
|
+
* adapter or driver is supplied, and this pack supplies neither. Until ARCH-035 the list was rebuilt
|
|
55
|
+
* here from the `@robota-sdk/agent-tools` factories and held to the defaults by a NAME-equality test
|
|
56
|
+
* — a pin that let ARCH-021's first TC-05 pass while being unable to fail, because comparing names
|
|
57
|
+
* cannot distinguish a pack-composed surface from an imported-default one when the two are pinned.
|
|
58
|
+
* The relationship is structural now, so there is no drift left to pin.
|
|
59
|
+
* - **commandModules** — the coding command modules: `/shell`, `/editor` and `/git` (the capability-level
|
|
60
|
+
* command modules, distinct from product-shell/settings/provider command infrastructure).
|
|
61
|
+
* - **subagents** — agent's built-in coding subagents (`general-purpose`, `Explore`, `Plan`).
|
|
62
|
+
*
|
|
63
|
+
* This pack contributes only when a product profile lists it (opt-in); every contributed command/tool runs
|
|
64
|
+
* only through the permission-gated runtime at call time.
|
|
65
|
+
*
|
|
66
|
+
* **Per-call instances, deliberately.** Each call builds fresh tool and command-module objects bound to the
|
|
67
|
+
* supplied context, so two products assembled in one process get independently-scoped file tools. There is
|
|
68
|
+
* no module-level singleton: a shared constant could only ever be context-free, which is exactly the hazard
|
|
69
|
+
* this factory exists to remove.
|
|
70
|
+
*/
|
|
71
|
+
declare function createCodingPack(options: ICodingPackOptions): ICapabilityPack;
|
|
72
|
+
//#endregion
|
|
73
|
+
export { type ICodingPackOptions, createCodingPack };
|
|
74
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/coding-pack.ts"],"mappings":";;;;;;;;;;;;;;;;;;UA0BiB;;EAEf;;EAEA;;EAEA;;;;;EAKA;;;;;;EAMA,gBAAgB;;;;;EAKhB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BN,iBAAiB,SAAS,qBAAqB"}
|
|
@@ -0,0 +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:`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}:{},...a.editorFiles?{editorFiles:a.editorFiles}:{}}),commandModules:[n(a.shellExecutable),e(a.editorTemporaryDirectoryPrefix),t()],subagents:r}}export{a as createCodingPack};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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 { IEditorFileAccess, 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 * An editor that has the workspace open, asked at each call: the host file tools read and write\n * through what it offers. Absent, or answering `undefined`, means the disk.\n */\n editorFiles?: () => IEditorFileAccess | undefined;\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 ...(options.editorFiles ? { editorFiles: options.editorFiles } : {}),\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":"mQA+EA,SAAgB,EAAiB,EAA8C,CAS7E,MAAO,CACL,GAAI,SACJ,MAAO,SACP,YACE,4GAaF,MAAO,EAAmB,CAxB1B,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,EACxE,GAAI,EAAQ,YAAc,CAAE,YAAa,EAAQ,WAAY,EAAI,CAAC,CAoB9B,CAAC,EACrC,eAAgB,CACd,EAAyB,EAAQ,eAAe,EAChD,EAA0B,EAAQ,8BAA8B,EAChE,EAAuB,CACzB,EACA,UAAW,CACb,CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@robota-sdk/pack-coding",
|
|
3
|
+
"version": "3.0.0-beta.100",
|
|
4
|
+
"description": "Robota's coding capability pack — an ICapabilityPack bundling the built-in coding tools, coding command modules, and coding subagents",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/node/index.js",
|
|
7
|
+
"types": "dist/node/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"source": "./src/index.ts",
|
|
11
|
+
"node": {
|
|
12
|
+
"import": {
|
|
13
|
+
"types": "./dist/node/index.d.ts",
|
|
14
|
+
"default": "./dist/node/index.js"
|
|
15
|
+
},
|
|
16
|
+
"require": {
|
|
17
|
+
"types": "./dist/node/index.d.cts",
|
|
18
|
+
"default": "./dist/node/index.cjs"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"default": {
|
|
22
|
+
"import": {
|
|
23
|
+
"types": "./dist/node/index.d.ts",
|
|
24
|
+
"default": "./dist/node/index.js"
|
|
25
|
+
},
|
|
26
|
+
"require": {
|
|
27
|
+
"types": "./dist/node/index.d.cts",
|
|
28
|
+
"default": "./dist/node/index.cjs"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"./package.json": "./package.json"
|
|
33
|
+
},
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=22.12.0"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist",
|
|
39
|
+
"CHANGELOG.md"
|
|
40
|
+
],
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@robota-sdk/agent-command": "3.0.0-beta.100",
|
|
43
|
+
"@robota-sdk/agent-framework": "3.0.0-beta.100",
|
|
44
|
+
"@robota-sdk/agent-capability-pack": "3.0.0-beta.100",
|
|
45
|
+
"@robota-sdk/agent-tool-defaults": "3.0.0-beta.100",
|
|
46
|
+
"@robota-sdk/agent-tools": "3.0.0-beta.100"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"rimraf": "^5.0.10",
|
|
50
|
+
"tsdown": "^0.22.14",
|
|
51
|
+
"typescript": "^6.0.3",
|
|
52
|
+
"vitest": "^3.2.6"
|
|
53
|
+
},
|
|
54
|
+
"license": "AGPL-3.0-only OR LicenseRef-Commercial",
|
|
55
|
+
"publishConfig": {
|
|
56
|
+
"access": "public"
|
|
57
|
+
},
|
|
58
|
+
"volta": {
|
|
59
|
+
"extends": "../../package.json"
|
|
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/",
|
|
69
|
+
"scripts": {
|
|
70
|
+
"build": "rimraf dist && tsdown",
|
|
71
|
+
"build:js": "pnpm run build",
|
|
72
|
+
"build:types": "pnpm run build",
|
|
73
|
+
"test": "vitest run --passWithNoTests",
|
|
74
|
+
"test:coverage": "vitest run --coverage --passWithNoTests",
|
|
75
|
+
"typecheck": "tsgo --noEmit",
|
|
76
|
+
"lint": "eslint src/ --ext .ts",
|
|
77
|
+
"clean": "rimraf dist"
|
|
78
|
+
}
|
|
79
|
+
}
|