@archmax-ai/harness 0.7.0 → 0.7.1
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/dist/authoring-skill/archmax-harness/references/hooks-and-scripts.md +4 -1
- package/dist/sandbox/executor.js +16 -4
- package/dist/sandbox/executor.js.map +1 -1
- package/dist/sandbox/prelude.js +20 -7
- package/dist/sandbox/prelude.js.map +1 -1
- package/package.json +1 -1
- package/skills/archmax-harness/references/hooks-and-scripts.md +4 -1
|
@@ -74,7 +74,10 @@ The calling state must allow every tool the script calls (here
|
|
|
74
74
|
`archmax_workflow_enrich-order`). A script's `tools` lists exactly the calling
|
|
75
75
|
state's tools, re-scoped at every evaluation (so after an advance the same REPL
|
|
76
76
|
lists the next state's); a tool the state does not offer is unlisted, and
|
|
77
|
-
calling it by name is refused with governance's reason.
|
|
77
|
+
calling it by name is refused with governance's reason. The listing is
|
|
78
|
+
camelCased, but a tool's own name reaches the same function
|
|
79
|
+
(`tools["archmax_workflow_enrich-order"]`, `tools.read_file`); a hook's `tools`
|
|
80
|
+
takes the camelCased names alone.
|
|
78
81
|
|
|
79
82
|
**Return into a variable.** A script's result reaches the model as one tool
|
|
80
83
|
message and no further — it is not written to the variable store, and a script
|
package/dist/sandbox/executor.js
CHANGED
|
@@ -27,9 +27,18 @@ function sandboxContext(params) {
|
|
|
27
27
|
const argsAssignment = (args) => `globalThis.args = ${JSON.stringify(args ?? {})};`;
|
|
28
28
|
/**
|
|
29
29
|
* The line that scopes `tools` to a surface, after the `ptc` prelude installed
|
|
30
|
-
* the view: named the way the session keys its injected tools, so the two match
|
|
30
|
+
* the view: named the way the session keys its injected tools, so the two match,
|
|
31
|
+
* plus each tool's own name mapped to that key, so a script may call either.
|
|
31
32
|
*/
|
|
32
|
-
const scopeCall = (surface
|
|
33
|
+
const scopeCall = (surface, tools = []) => surface
|
|
34
|
+
? [
|
|
35
|
+
`globalThis.__archmaxScope(${JSON.stringify(surface.map((name) => toCamelCase(name)))}, ${JSON.stringify(ownNames(tools))});`,
|
|
36
|
+
]
|
|
37
|
+
: [];
|
|
38
|
+
/** Each tool's own name → the camelCase key the session injects it under, where the two differ. */
|
|
39
|
+
function ownNames(tools) {
|
|
40
|
+
return Object.fromEntries(tools.map((tool) => [tool.name, toCamelCase(tool.name)]).filter(([own, key]) => own !== key));
|
|
41
|
+
}
|
|
33
42
|
/**
|
|
34
43
|
* The code a lifecycle hook runs as. The hook body is evaluated as its own
|
|
35
44
|
* async IIFE (`transformForEval`) so its completion value can be read — a
|
|
@@ -96,7 +105,7 @@ export function createScriptExecutor(opts) {
|
|
|
96
105
|
const prelude = readPrelude(sandboxContext(params), sandboxVersion);
|
|
97
106
|
const code = [
|
|
98
107
|
prelude,
|
|
99
|
-
...scopeCall(params.surface),
|
|
108
|
+
...scopeCall(params.surface, params.tools),
|
|
100
109
|
argsAssignment(params.args),
|
|
101
110
|
`globalThis.__scriptPath = ${JSON.stringify(normalizeRelPath(filePath))};`,
|
|
102
111
|
source,
|
|
@@ -109,7 +118,10 @@ export function createScriptExecutor(opts) {
|
|
|
109
118
|
// Same contract as an authored file: the PTC prelude runs first so inline
|
|
110
119
|
// code sees the same `SANDBOX_CONTRACT` marker, the same scoped `tools` and
|
|
111
120
|
// the same absence of the hook-only vocabulary.
|
|
112
|
-
const preamble = [
|
|
121
|
+
const preamble = [
|
|
122
|
+
readPrelude(sandboxContext(params), sandboxVersion),
|
|
123
|
+
...scopeCall(params.surface, params.tools),
|
|
124
|
+
];
|
|
113
125
|
return evalCode(`${preamble.join("\n")}\n${code}`, params);
|
|
114
126
|
},
|
|
115
127
|
dispose(sessionId, sessionNamespace) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/sandbox/executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAuB,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,2BAA2B,EAAuB,MAAM,cAAc,CAAC;AAEhF;;;;;;;;;GASG;AAEH,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC;AAuDzC,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;AACvG,CAAC;AAED,+EAA+E;AAC/E,SAAS,cAAc,CAAC,MAAuB;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;AACrD,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,IAAyC,EAAE,EAAE,CACnE,qBAAqB,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/sandbox/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/sandbox/prelude.js
CHANGED
|
@@ -29,24 +29,37 @@ const PTC_PRELUDE = [
|
|
|
29
29
|
// surface the executor names per evaluation (`__archmaxScope`). Its identity
|
|
30
30
|
// never changes, so a reference an earlier evaluation kept reads the current
|
|
31
31
|
// state. `get` still resolves a registered name outside the view, so calling
|
|
32
|
-
// one reaches governance and its refusal, not a TypeError.
|
|
33
|
-
//
|
|
32
|
+
// one reaches governance and its refusal, not a TypeError. The session keys
|
|
33
|
+
// each tool by its camelCase name, but a model writes the name it calls the
|
|
34
|
+
// tool by (`tools.read_file`), so the executor also hands over each tool's own
|
|
35
|
+
// name → its key, and every lookup resolves through that; the listing stays
|
|
36
|
+
// the keys. An IIFE: the evaluation hoists top-level declarations onto
|
|
37
|
+
// `globalThis`.
|
|
34
38
|
`(() => {
|
|
35
39
|
if (globalThis.__archmaxScope) return;
|
|
36
40
|
const all = globalThis.tools != null && typeof globalThis.tools === "object" ? globalThis.tools : {};
|
|
37
41
|
const injected = (name) => typeof name === "string" && Object.prototype.hasOwnProperty.call(all, name);
|
|
38
42
|
let surface = null;
|
|
43
|
+
let keys = {};
|
|
44
|
+
const keyOf = (name) =>
|
|
45
|
+
!injected(name) && typeof name === "string" && Object.prototype.hasOwnProperty.call(keys, name) ? keys[name] : name;
|
|
39
46
|
const visible = (name) => injected(name) && (surface === null || surface.has(name));
|
|
40
47
|
const view = new Proxy({}, {
|
|
41
|
-
get: (_target, name) =>
|
|
42
|
-
|
|
48
|
+
get: (_target, name) => {
|
|
49
|
+
const key = keyOf(name);
|
|
50
|
+
return injected(key) ? all[key] : undefined;
|
|
51
|
+
},
|
|
52
|
+
has: (_target, name) => visible(keyOf(name)),
|
|
43
53
|
ownKeys: () => Object.keys(all).filter(visible),
|
|
44
|
-
getOwnPropertyDescriptor: (_target, name) =>
|
|
45
|
-
|
|
54
|
+
getOwnPropertyDescriptor: (_target, name) => {
|
|
55
|
+
const key = keyOf(name);
|
|
56
|
+
return visible(key) ? { value: all[key], writable: false, enumerable: true, configurable: true } : undefined;
|
|
57
|
+
},
|
|
46
58
|
});
|
|
47
59
|
Object.defineProperty(globalThis, "__archmaxScope", {
|
|
48
|
-
value: (names) => {
|
|
60
|
+
value: (names, ownNames) => {
|
|
49
61
|
surface = new Set(names);
|
|
62
|
+
keys = ownNames ?? {};
|
|
50
63
|
globalThis.tools = view;
|
|
51
64
|
},
|
|
52
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../src/sandbox/prelude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAuB,MAAM,wBAAwB,CAAC;AAEtF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC7C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEjD,SAAS,QAAQ;IACf,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,WAAW,GAAG;IAClB,0FAA0F;IAC1F,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,
|
|
1
|
+
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../src/sandbox/prelude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAuB,MAAM,wBAAwB,CAAC;AAEtF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC7C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEjD,SAAS,QAAQ;IACf,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,WAAW,GAAG;IAClB,0FAA0F;IAC1F,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,+EAA+E;IAC/E,4EAA4E;IAC5E,uEAAuE;IACvE,gBAAgB;IAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA4BI;CACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CACzB,UAA0B,gBAAgB,EAC1C,UAAkB,uBAAuB;IAEzC,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,MAAM,GAAG,kCAAkC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;IAC5E,MAAM,KAAK,GACT,OAAO,KAAK,KAAK;QACf,CAAC,CAAC,CAAC,WAAW,CAAC;QACf,CAAC,CAAC;YACE,QAAQ,CAAC,MAAM,CAAC;YAChB,QAAQ,CAAC,gBAAgB,CAAC;SAC3B,CAAC;IACR,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACnC,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@archmax-ai/harness",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Agents can't reliably follow a process. archmax harness makes them: a governed layer over LangChain Deep Agents that enforces a declarative workflow state machine on every step.",
|
|
6
6
|
"keywords": [
|
|
@@ -74,7 +74,10 @@ The calling state must allow every tool the script calls (here
|
|
|
74
74
|
`archmax_workflow_enrich-order`). A script's `tools` lists exactly the calling
|
|
75
75
|
state's tools, re-scoped at every evaluation (so after an advance the same REPL
|
|
76
76
|
lists the next state's); a tool the state does not offer is unlisted, and
|
|
77
|
-
calling it by name is refused with governance's reason.
|
|
77
|
+
calling it by name is refused with governance's reason. The listing is
|
|
78
|
+
camelCased, but a tool's own name reaches the same function
|
|
79
|
+
(`tools["archmax_workflow_enrich-order"]`, `tools.read_file`); a hook's `tools`
|
|
80
|
+
takes the camelCased names alone.
|
|
78
81
|
|
|
79
82
|
**Return into a variable.** A script's result reaches the model as one tool
|
|
80
83
|
message and no further — it is not written to the variable store, and a script
|