@tagma/sdk 0.7.101 → 0.7.103
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/README.md +22 -8
- package/dist/drivers/opencode.d.ts.map +1 -1
- package/dist/drivers/opencode.js +62 -1
- package/dist/drivers/opencode.js.map +1 -1
- package/dist/middlewares/static-context.d.ts.map +1 -1
- package/dist/middlewares/static-context.js +6 -2
- package/dist/middlewares/static-context.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -220,13 +220,20 @@ Each hook value can be a single command string or an array of commands.
|
|
|
220
220
|
|
|
221
221
|
| Field | Type | Default | Description |
|
|
222
222
|
| --------- | --------- | ------- | -------------------------------------------------- |
|
|
223
|
-
| `read` | `boolean` |
|
|
224
|
-
| `write` | `boolean` |
|
|
225
|
-
| `execute` | `boolean` |
|
|
223
|
+
| `read` | `boolean` | `true` | Allow the AI driver/agent to read files |
|
|
224
|
+
| `write` | `boolean` | `false` | Allow the AI driver/agent to write files |
|
|
225
|
+
| `execute` | `boolean` | `false` | Allow the AI driver/agent to execute tool commands |
|
|
226
226
|
|
|
227
227
|
`permissions` are passed to AI drivers that support them. They do not sandbox
|
|
228
228
|
YAML `command` tasks; command tasks execute through the host shell.
|
|
229
229
|
|
|
230
|
+
The built-in OpenCode driver maps denied capabilities to a task-scoped OpenCode policy. In
|
|
231
|
+
particular, `execute: false` disables Bash and delegated agents for that task. This is tool-policy
|
|
232
|
+
enforcement, not an operating-system sandbox: when `execute: true` grants a host shell, that shell
|
|
233
|
+
can itself read and write files regardless of the `read` and `write` bits. Prefer the monotonic
|
|
234
|
+
tiers none, read-only, read/write without shell, or full access. Third-party drivers must document
|
|
235
|
+
whether and how they enforce these fields.
|
|
236
|
+
|
|
230
237
|
### Inheritance
|
|
231
238
|
|
|
232
239
|
Fields are inherited top-down: **pipeline -> track -> task**. A value set at a lower level overrides the inherited value.
|
|
@@ -403,11 +410,18 @@ File and directory trigger watch paths may be relative to `workDir`, absolute, o
|
|
|
403
410
|
|
|
404
411
|
#### `static_context` - Prepend file content to prompt
|
|
405
412
|
|
|
406
|
-
| Field
|
|
407
|
-
|
|
|
408
|
-
| `type`
|
|
409
|
-
| `file`
|
|
410
|
-
| `label`
|
|
413
|
+
| Field | Type | Required | Default | Description |
|
|
414
|
+
| ----------- | ------------------ | -------- | ------------------------- | ---------------------------------------------- |
|
|
415
|
+
| `type` | `"static_context"` | Yes | - | Middleware type |
|
|
416
|
+
| `file` | `string` | Yes | - | Path to the context file (relative to workDir) |
|
|
417
|
+
| `label` | `string` | No | `"Reference: {filename}"` | Label for the injected context section |
|
|
418
|
+
| `max_chars` | `number` | No | `200000` | Maximum number of characters to inject |
|
|
419
|
+
|
|
420
|
+
The configured source file is required at execution time. A missing or unreadable source fails the
|
|
421
|
+
task instead of silently running the prompt without its promised context. Pipelines created against
|
|
422
|
+
older SDK behavior that intentionally tolerated an absent reference must either provision the file
|
|
423
|
+
before execution or remove the middleware for runs where the context is not required; there is no
|
|
424
|
+
implicit optional-context fallback.
|
|
411
425
|
|
|
412
426
|
## API
|
|
413
427
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/drivers/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/drivers/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAQb,MAAM,cAAc,CAAC;AAoFtB,eAAO,MAAM,cAAc,EAAE,YAkM5B,CAAC"}
|
package/dist/drivers/opencode.js
CHANGED
|
@@ -1,4 +1,45 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
1
2
|
const DEFAULT_MODEL = 'opencode/big-pickle';
|
|
3
|
+
const TAGMA_PIPELINE_TASK_AGENT_PREFIX = 'tagma-pipeline-task-';
|
|
4
|
+
const DEFAULT_PERMISSIONS = { read: true, write: false, execute: false };
|
|
5
|
+
function buildPermissionRestrictions(permissions) {
|
|
6
|
+
const policy = {};
|
|
7
|
+
if (!permissions.read) {
|
|
8
|
+
for (const tool of ['read', 'glob', 'grep', 'list', 'lsp', 'skill'])
|
|
9
|
+
policy[tool] = 'deny';
|
|
10
|
+
}
|
|
11
|
+
if (!permissions.write) {
|
|
12
|
+
policy.edit = 'deny';
|
|
13
|
+
// These Editor-managed authoring tools can persist chat staging state and
|
|
14
|
+
// are not ordinary pipeline-task capabilities.
|
|
15
|
+
policy.tagma_yaml_skeleton = 'deny';
|
|
16
|
+
policy.tagma_placement_plan = 'deny';
|
|
17
|
+
policy.tagma_trial_plan = 'deny';
|
|
18
|
+
}
|
|
19
|
+
if (!permissions.execute)
|
|
20
|
+
policy.bash = 'deny';
|
|
21
|
+
// A delegated agent has its own tool policy, so allowing `task` would let a
|
|
22
|
+
// restricted prompt escape the current task's read/write/execute envelope.
|
|
23
|
+
if (!permissions.read || !permissions.write || !permissions.execute)
|
|
24
|
+
policy.task = 'deny';
|
|
25
|
+
return policy;
|
|
26
|
+
}
|
|
27
|
+
function buildRestrictedTaskEnv(restrictions, taskAgentName) {
|
|
28
|
+
const config = {
|
|
29
|
+
default_agent: taskAgentName,
|
|
30
|
+
agent: {
|
|
31
|
+
[taskAgentName]: {
|
|
32
|
+
description: 'Execute one Tagma pipeline prompt task with task-scoped permissions.',
|
|
33
|
+
mode: 'primary',
|
|
34
|
+
permission: restrictions,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
return {
|
|
39
|
+
OPENCODE_PERMISSION: JSON.stringify(restrictions),
|
|
40
|
+
OPENCODE_CONFIG_CONTENT: JSON.stringify(config),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
2
43
|
// NOTE on Windows multi-line prompts: `opencode` resolves to `opencode.cmd`,
|
|
3
44
|
// an npm-generated batch wrapper. cmd.exe silently truncates argv elements
|
|
4
45
|
// at the first newline, so a multi-line prompt reaches the model as only
|
|
@@ -46,6 +87,9 @@ export const OpenCodeDriver = {
|
|
|
46
87
|
sessionResume: true, // supports --session
|
|
47
88
|
systemPrompt: false, // no --system-prompt flag; prepend to prompt instead
|
|
48
89
|
outputFormat: true, // supports --format json
|
|
90
|
+
// Standard OpenCode tools are restricted below. Keep this coarse capability
|
|
91
|
+
// false because arbitrary project/MCP tools are outside Tagma's three-bit
|
|
92
|
+
// permission vocabulary and must not be advertised as fully sandboxed.
|
|
49
93
|
enforcesPermissions: false,
|
|
50
94
|
},
|
|
51
95
|
resolveModel() {
|
|
@@ -63,6 +107,12 @@ export const OpenCodeDriver = {
|
|
|
63
107
|
? EFFORT_TO_VARIANT[rawEffort]
|
|
64
108
|
: rawEffort
|
|
65
109
|
: null;
|
|
110
|
+
const permissions = task.permissions ?? track.permissions ?? DEFAULT_PERMISSIONS;
|
|
111
|
+
const permissionRestrictions = buildPermissionRestrictions(permissions);
|
|
112
|
+
const restricted = Object.keys(permissionRestrictions).length > 0;
|
|
113
|
+
const taskAgentName = restricted
|
|
114
|
+
? `${TAGMA_PIPELINE_TASK_AGENT_PREFIX}${randomUUID().replaceAll('-', '')}`
|
|
115
|
+
: null;
|
|
66
116
|
let prompt = task.prompt;
|
|
67
117
|
// agent_profile has no dedicated flag; prepend to prompt
|
|
68
118
|
const profile = task.agent_profile ?? track.agent_profile;
|
|
@@ -106,13 +156,24 @@ export const OpenCodeDriver = {
|
|
|
106
156
|
if (variant) {
|
|
107
157
|
args.push('--variant', variant);
|
|
108
158
|
}
|
|
159
|
+
// OpenCode applies agent-specific rules after its top-level permission
|
|
160
|
+
// policy. Select a Tagma-owned agent carrying the same deny policy so a
|
|
161
|
+
// user-defined build agent cannot turn a denied tool back on.
|
|
162
|
+
if (taskAgentName)
|
|
163
|
+
args.push('--agent', taskAgentName);
|
|
109
164
|
// session resume (must appear before --)
|
|
110
165
|
if (sessionId) {
|
|
111
166
|
args.push('--session', sessionId);
|
|
112
167
|
}
|
|
113
168
|
// `--` (POSIX end-of-options) isolates prompt from flag parsing
|
|
114
169
|
args.push('--', prompt);
|
|
115
|
-
return {
|
|
170
|
+
return {
|
|
171
|
+
args,
|
|
172
|
+
cwd: task.cwd ?? ctx.workDir,
|
|
173
|
+
...(taskAgentName
|
|
174
|
+
? { env: buildRestrictedTaskEnv(permissionRestrictions, taskAgentName) }
|
|
175
|
+
: {}),
|
|
176
|
+
};
|
|
116
177
|
},
|
|
117
178
|
parseResult(stdout) {
|
|
118
179
|
// opencode --format json emits NDJSON: one JSON object per line
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/drivers/opencode.ts"],"names":[],"mappings":"AAUA,MAAM,aAAa,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/drivers/opencode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-context.d.ts","sourceRoot":"","sources":["../../src/middlewares/static-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAqC,MAAM,cAAc,CAAC;AAcxF,eAAO,MAAM,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"static-context.d.ts","sourceRoot":"","sources":["../../src/middlewares/static-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAqC,MAAM,cAAc,CAAC;AAcxF,eAAO,MAAM,uBAAuB,EAAE,gBAmFrC,CAAC"}
|
|
@@ -53,8 +53,12 @@ export const StaticContextMiddleware = {
|
|
|
53
53
|
const safePath = resolvePluginPath(filePath, ctx.workDir);
|
|
54
54
|
const file = Bun.file(safePath);
|
|
55
55
|
if (!(await file.exists())) {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
// The configured source is required (schema: required) and the task
|
|
57
|
+
// prompt promises its content is injected on every run. Silently
|
|
58
|
+
// skipping would hand the model a prompt whose promised context is
|
|
59
|
+
// missing, so fail loudly at the middleware layer instead.
|
|
60
|
+
throw new Error(`static_context middleware: file "${filePath}" not found at "${safePath}". ` +
|
|
61
|
+
'Restore the configured context source or fix the pipeline reference.');
|
|
58
62
|
}
|
|
59
63
|
// max_chars is a *character* count, not a byte count. Blob.slice() is
|
|
60
64
|
// byte-level, so a naive `slice(0, maxChars + 1)` lands mid-UTF-8 for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-context.js","sourceRoot":"","sources":["../../src/middlewares/static-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEjG,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAE1C,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,yBAAyB,CAAC;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAqB;IACvD,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE;QACL,eAAe,EAAE,CAAC;QAClB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,gBAAgB;QAC5B,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,SAAS;KACnB;IACD,MAAM,EAAE;QACN,WAAW,EAAE,2DAA2D;QACxE,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,+DAA+D;gBAC5E,WAAW,EAAE,cAAc;aAC5B;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uEAAuE;gBACpF,WAAW,EAAE,oBAAoB;aAClC;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qDAAqD;gBAClE,OAAO,EAAE,yBAAyB;gBAClC,GAAG,EAAE,CAAC;aACP;SACF;KACF;IAED,KAAK,CAAC,UAAU,CACd,GAAmB,EACnB,MAA+B,EAC/B,GAAsB;QAEtB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,2BAA2B,CAAC,CAAC;QACnF,MAAM,KAAK,GACT,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,2BAA2B,CAAC;YAClE,cAAc,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAErC,uEAAuE;QACvE,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEhC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YAC3B,
|
|
1
|
+
{"version":3,"file":"static-context.js","sourceRoot":"","sources":["../../src/middlewares/static-context.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tagma/sdk",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.103",
|
|
4
4
|
"description": "Local AI task orchestration SDK for Tagma pipelines",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -84,9 +84,9 @@
|
|
|
84
84
|
"test": "bun test"
|
|
85
85
|
},
|
|
86
86
|
"dependencies": {
|
|
87
|
-
"@tagma/core": "0.1.
|
|
88
|
-
"@tagma/runtime-bun": "0.1.
|
|
89
|
-
"@tagma/types": "0.4.
|
|
87
|
+
"@tagma/core": "0.1.98",
|
|
88
|
+
"@tagma/runtime-bun": "0.1.88",
|
|
89
|
+
"@tagma/types": "0.4.105",
|
|
90
90
|
"js-yaml": "^4.1.0"
|
|
91
91
|
}
|
|
92
92
|
}
|