cool-workflow 0.1.97 → 0.2.0
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +11 -2
- package/apps/architecture-review/app.json +1 -1
- package/apps/architecture-review-fast/app.json +1 -1
- package/apps/end-to-end-golden-path/app.json +1 -1
- package/apps/pr-review-fix-ci/app.json +1 -1
- package/apps/release-cut/app.json +1 -1
- package/apps/research-synthesis/app.json +1 -1
- package/dist/cli/dispatch.js +236 -0
- package/dist/cli/entry.js +120 -0
- package/dist/cli/io.js +21 -4
- package/dist/cli/parseargv.js +157 -0
- package/dist/cli.js +6 -33
- package/dist/core/capability-table.js +3534 -0
- package/dist/core/format/help.js +314 -0
- package/dist/{state-explosion/format.js → core/format/state-explosion-text.js} +10 -1
- package/dist/core/hash.js +137 -0
- package/dist/core/multi-agent/candidate-scoring.js +219 -0
- package/dist/core/multi-agent/collaboration.js +481 -0
- package/dist/core/multi-agent/coordinator.js +515 -0
- package/dist/core/multi-agent/eval-replay.js +306 -0
- package/dist/core/multi-agent/runtime.js +929 -0
- package/dist/core/multi-agent/topology.js +298 -0
- package/dist/core/multi-agent/trust-policy.js +197 -0
- package/dist/core/pipeline/commit-gate.js +320 -0
- package/dist/{pipeline-contract.js → core/pipeline/contract.js} +24 -37
- package/dist/core/pipeline/dispatch.js +103 -0
- package/dist/core/pipeline/drive-decide.js +227 -0
- package/dist/core/pipeline/error-feedback.js +161 -0
- package/dist/core/pipeline/loop-expansion.js +124 -0
- package/dist/{result-normalize.js → core/pipeline/result-normalize.js} +14 -37
- package/dist/core/pipeline/runner.js +230 -0
- package/dist/{contract-migration.js → core/state/contract-migration.js} +68 -92
- package/dist/{state-migrations.js → core/state/migrations.js} +103 -96
- package/dist/core/state/node-projection.js +95 -0
- package/dist/core/state/node-snapshot.js +230 -0
- package/dist/core/state/run-paths.js +93 -0
- package/dist/{schema-validate.js → core/state/schema-validate.js} +35 -28
- package/dist/core/state/schema.js +50 -0
- package/dist/core/state/state-explosion/digest.js +243 -0
- package/dist/core/state/state-explosion/graph.js +527 -0
- package/dist/{state-explosion → core/state/state-explosion}/helpers.js +34 -3
- package/dist/core/state/state-explosion/report.js +187 -0
- package/dist/{state-explosion → core/state/state-explosion}/size.js +25 -7
- package/dist/{state-node.js → core/state/state-node.js} +90 -113
- package/dist/core/state/types.js +19 -0
- package/dist/{validation.js → core/state/validation.js} +64 -131
- package/dist/core/trust/evidence-grounding.js +134 -0
- package/dist/core/trust/ledger.js +199 -0
- package/dist/{telemetry-attestation.js → core/trust/telemetry-attestation.js} +94 -68
- package/dist/core/trust/telemetry-ledger.js +127 -0
- package/dist/core/types.js +20 -0
- package/dist/core/version.js +16 -0
- package/dist/{workflow-app-framework.js → core/workflow-apps/app-schema.js} +337 -426
- package/dist/mcp/dispatch.js +104 -0
- package/dist/mcp/server.js +144 -0
- package/dist/mcp-server.js +6 -84
- package/dist/{agent-config.js → shell/agent-config.js} +118 -71
- package/dist/shell/app-run-cli.js +88 -0
- package/dist/shell/audit-cli.js +259 -0
- package/dist/shell/audit-provenance.js +83 -0
- package/dist/shell/candidate-scoring-io.js +459 -0
- package/dist/shell/collaboration-io.js +264 -0
- package/dist/shell/commit-summary.js +104 -0
- package/dist/shell/commit.js +290 -0
- package/dist/shell/coordinator-io.js +476 -0
- package/dist/shell/demo-cli.js +19 -0
- package/dist/shell/dispatch.js +162 -0
- package/dist/{doctor.js → shell/doctor.js} +123 -56
- package/dist/shell/drive.js +873 -0
- package/dist/shell/error-feedback-io.js +305 -0
- package/dist/shell/eval-io.js +473 -0
- package/dist/{multi-agent-eval/format.js → shell/eval-text.js} +78 -49
- package/dist/{evidence-reasoning.js → shell/evidence-reasoning.js} +124 -255
- package/dist/shell/exec-backend-cli.js +88 -0
- package/dist/shell/execution-backend/agent.js +475 -0
- package/dist/shell/execution-backend/ci.js +15 -0
- package/dist/shell/execution-backend/container.js +69 -0
- package/dist/shell/execution-backend/envelopes.js +55 -0
- package/dist/shell/execution-backend/local.js +113 -0
- package/dist/shell/execution-backend/probes.js +175 -0
- package/dist/shell/execution-backend/registry.js +402 -0
- package/dist/shell/execution-backend/remote.js +128 -0
- package/dist/shell/execution-backend/types.js +11 -0
- package/dist/shell/feedback-cli.js +81 -0
- package/dist/shell/feedback-operations.js +48 -0
- package/dist/shell/fs-atomic.js +276 -0
- package/dist/shell/harness.js +98 -0
- package/dist/shell/ledger-cli.js +212 -0
- package/dist/shell/ledger-io.js +169 -0
- package/dist/shell/man-cli.js +89 -0
- package/dist/shell/metrics-cli.js +98 -0
- package/dist/shell/multi-agent-cli.js +1002 -0
- package/dist/shell/multi-agent-host.js +563 -0
- package/dist/shell/multi-agent-io.js +387 -0
- package/dist/{multi-agent-operator-ux.js → shell/multi-agent-operator-ux.js} +234 -191
- package/dist/shell/node-store.js +124 -0
- package/dist/{observability/format.js → shell/observability-format.js} +7 -1
- package/dist/{observability/intake.js → shell/observability-intake.js} +79 -56
- package/dist/{observability.js → shell/observability.js} +159 -332
- package/dist/{onramp.js → shell/onramp.js} +11 -0
- package/dist/{operator-ux/format.js → shell/operator-ux-text.js} +250 -239
- package/dist/shell/operator-ux.js +431 -0
- package/dist/shell/orchestrator.js +231 -0
- package/dist/shell/pipeline-cli.js +667 -0
- package/dist/shell/pipeline.js +217 -0
- package/dist/shell/reclamation-io.js +1366 -0
- package/dist/shell/registry-cli.js +329 -0
- package/dist/{remote-source.js → shell/remote-source.js} +12 -5
- package/dist/shell/report-cli.js +101 -0
- package/dist/shell/report-view-cli.js +117 -0
- package/dist/{orchestrator → shell}/report.js +289 -282
- package/dist/shell/reporter.js +62 -0
- package/dist/shell/run-export-cli.js +106 -0
- package/dist/shell/run-export.js +680 -0
- package/dist/shell/run-registry-io.js +1014 -0
- package/dist/shell/run-store.js +164 -0
- package/dist/{sandbox-profile.js → shell/sandbox-profile.js} +134 -95
- package/dist/{scheduler.js → shell/scheduler-io.js} +248 -48
- package/dist/shell/scheduling-io.js +311 -0
- package/dist/shell/state-cli.js +181 -0
- package/dist/shell/state-explosion-cli.js +197 -0
- package/dist/shell/telemetry-cli.js +85 -0
- package/dist/{telemetry-demo.js → shell/telemetry-demo.js} +149 -119
- package/dist/shell/telemetry-ledger-io.js +132 -0
- package/dist/{term.js → shell/term.js} +36 -46
- package/dist/shell/topology-io.js +361 -0
- package/dist/shell/trust-audit.js +471 -0
- package/dist/{multi-agent-trust.js → shell/trust-policy-io.js} +67 -205
- package/dist/shell/verifier.js +48 -0
- package/dist/shell/workbench-host.js +250 -0
- package/dist/shell/workbench-text.js +18 -0
- package/dist/shell/workbench.js +175 -0
- package/dist/shell/worker-cli.js +124 -0
- package/dist/shell/worker-isolation.js +852 -0
- package/dist/shell/workflow-app-loader.js +650 -0
- package/docs/agent-delegation-drive.7.md +4 -0
- package/docs/cli-mcp-parity.7.md +284 -211
- package/docs/contract-migration-tooling.7.md +4 -0
- package/docs/control-plane-scheduling.7.md +4 -0
- package/docs/cross-agent-ledger.7.md +217 -0
- package/docs/designs/handoff-ledger.md +145 -0
- package/docs/durable-state-and-locking.7.md +4 -0
- package/docs/evidence-adoption-reasoning-chain.7.md +4 -0
- package/docs/execution-backends.7.md +4 -0
- package/docs/handoff-setup.md +120 -0
- package/docs/multi-agent-cli-mcp-surface.7.md +4 -0
- package/docs/multi-agent-eval-replay-harness.7.md +4 -0
- package/docs/multi-agent-operator-ux.7.md +4 -0
- package/docs/node-snapshot-diff-replay.7.md +4 -0
- package/docs/observability-cost-accounting.7.md +4 -0
- package/docs/project-index.md +143 -71
- package/docs/real-execution-backends.7.md +4 -0
- package/docs/release-and-migration.7.md +4 -0
- package/docs/release-tooling.7.md +4 -0
- package/docs/run-registry-control-plane.7.md +4 -0
- package/docs/run-retention-reclamation.7.md +25 -0
- package/docs/state-explosion-management.7.md +4 -0
- package/docs/team-collaboration.7.md +4 -0
- package/docs/web-desktop-workbench.7.md +4 -0
- package/manifest/plugin.manifest.json +1 -1
- package/manifest/source-context-profiles.json +9 -13
- package/package.json +1 -1
- package/scripts/agents/codex-agent.js +34 -4
- package/scripts/agents/cw-attest-wrap.js +2 -2
- package/scripts/bump-version.js +4 -3
- package/scripts/canonical-apps.js +4 -4
- package/scripts/children/batch-delegate-child.js +30 -10
- package/scripts/dogfood-architecture-review.js +2 -3
- package/scripts/dogfood-release.js +3 -3
- package/scripts/gen-parity-doc.js +15 -2
- package/scripts/golden-path.js +4 -4
- package/scripts/onramp-check.js +1 -1
- package/scripts/parity-check.js +38 -21
- package/scripts/release-flow.js +9 -3
- package/scripts/sync-project-index.js +51 -27
- package/scripts/validate-run-state-schema.js +2 -2
- package/scripts/version-sync-check.js +30 -30
- package/dist/candidate-scoring.js +0 -729
- package/dist/capability-core.js +0 -1186
- package/dist/capability-registry.js +0 -879
- package/dist/cli/command-surface.js +0 -490
- package/dist/cli/format.js +0 -56
- package/dist/cli/handlers/audit.js +0 -82
- package/dist/cli/handlers/blackboard.js +0 -81
- package/dist/cli/handlers/candidate.js +0 -40
- package/dist/cli/handlers/clones.js +0 -34
- package/dist/cli/handlers/collaboration.js +0 -61
- package/dist/cli/handlers/eval.js +0 -40
- package/dist/cli/handlers/maintenance.js +0 -107
- package/dist/cli/handlers/multi-agent.js +0 -165
- package/dist/cli/handlers/node.js +0 -41
- package/dist/cli/handlers/operational.js +0 -155
- package/dist/cli/handlers/operator.js +0 -146
- package/dist/cli/handlers/registry.js +0 -68
- package/dist/cli/handlers/run.js +0 -153
- package/dist/cli/handlers/scheduling.js +0 -132
- package/dist/cli/handlers/workbench.js +0 -41
- package/dist/cli/handlers/worker.js +0 -45
- package/dist/cli/run-summary.js +0 -45
- package/dist/clones.js +0 -162
- package/dist/collaboration.js +0 -726
- package/dist/commit.js +0 -592
- package/dist/compare.js +0 -18
- package/dist/coordinator/classify.js +0 -45
- package/dist/coordinator/paths.js +0 -42
- package/dist/coordinator/util.js +0 -126
- package/dist/coordinator.js +0 -990
- package/dist/daemon.js +0 -44
- package/dist/dispatch.js +0 -250
- package/dist/drive.js +0 -827
- package/dist/error-feedback.js +0 -419
- package/dist/evidence-grounding.js +0 -184
- package/dist/execution-backend/agent.js +0 -294
- package/dist/execution-backend/probes.js +0 -112
- package/dist/execution-backend/util.js +0 -47
- package/dist/execution-backend.js +0 -961
- package/dist/gates.js +0 -48
- package/dist/harness.js +0 -61
- package/dist/loop-expansion.js +0 -60
- package/dist/mcp/tool-call.js +0 -434
- package/dist/mcp/tool-definitions.js +0 -1040
- package/dist/mcp-surface.js +0 -30
- package/dist/multi-agent/graph.js +0 -84
- package/dist/multi-agent/helpers.js +0 -141
- package/dist/multi-agent/ids.js +0 -20
- package/dist/multi-agent/paths.js +0 -22
- package/dist/multi-agent-eval/normalize.js +0 -51
- package/dist/multi-agent-eval.js +0 -678
- package/dist/multi-agent-host.js +0 -777
- package/dist/multi-agent.js +0 -984
- package/dist/node-projection.js +0 -59
- package/dist/node-snapshot.js +0 -260
- package/dist/operator-ux.js +0 -631
- package/dist/orchestrator/app-operations.js +0 -211
- package/dist/orchestrator/audit-operations.js +0 -182
- package/dist/orchestrator/candidate-operations.js +0 -117
- package/dist/orchestrator/cli-options.js +0 -294
- package/dist/orchestrator/collaboration-operations.js +0 -86
- package/dist/orchestrator/feedback-operations.js +0 -81
- package/dist/orchestrator/host-operations.js +0 -78
- package/dist/orchestrator/lifecycle-operations.js +0 -626
- package/dist/orchestrator/migration-operations.js +0 -44
- package/dist/orchestrator/multi-agent-operations.js +0 -362
- package/dist/orchestrator/topology-operations.js +0 -84
- package/dist/orchestrator.js +0 -917
- package/dist/pipeline-runner.js +0 -285
- package/dist/reclamation/hash.js +0 -72
- package/dist/reclamation.js +0 -812
- package/dist/reporter.js +0 -67
- package/dist/run-export.js +0 -784
- package/dist/run-registry/derive.js +0 -175
- package/dist/run-registry/format.js +0 -124
- package/dist/run-registry/gc.js +0 -251
- package/dist/run-registry/policy.js +0 -16
- package/dist/run-registry/queue.js +0 -115
- package/dist/run-registry.js +0 -850
- package/dist/run-state-schema.js +0 -68
- package/dist/scheduling.js +0 -184
- package/dist/state-explosion.js +0 -1014
- package/dist/state.js +0 -367
- package/dist/telemetry-ledger.js +0 -196
- package/dist/topology.js +0 -565
- package/dist/triggers.js +0 -184
- package/dist/trust-audit.js +0 -644
- package/dist/types/blackboard.js +0 -2
- package/dist/types/candidate.js +0 -2
- package/dist/types/collaboration.js +0 -2
- package/dist/types/core.js +0 -2
- package/dist/types/drive.js +0 -10
- package/dist/types/error-feedback.js +0 -2
- package/dist/types/evidence-reasoning.js +0 -2
- package/dist/types/execution-backend.js +0 -2
- package/dist/types/multi-agent.js +0 -2
- package/dist/types/observability.js +0 -2
- package/dist/types/pipeline.js +0 -2
- package/dist/types/reclamation.js +0 -8
- package/dist/types/report-bundle.js +0 -6
- package/dist/types/result.js +0 -2
- package/dist/types/run-registry.js +0 -2
- package/dist/types/run.js +0 -2
- package/dist/types/sandbox.js +0 -2
- package/dist/types/schedule.js +0 -2
- package/dist/types/state-node.js +0 -2
- package/dist/types/topology.js +0 -2
- package/dist/types/trust.js +0 -2
- package/dist/types/workbench.js +0 -2
- package/dist/types/worker.js +0 -2
- package/dist/types/workflow-app.js +0 -2
- package/dist/types.js +0 -44
- package/dist/util/fingerprint.js +0 -19
- package/dist/util/fingerprint.test.js +0 -27
- package/dist/verifier.js +0 -78
- package/dist/version.js +0 -8
- package/dist/workbench-host.js +0 -182
- package/dist/workbench.js +0 -192
- package/dist/worker-accept/acceptance.js +0 -114
- package/dist/worker-accept/blackboard-fanout.js +0 -80
- package/dist/worker-accept/blackboard-linkage.js +0 -19
- package/dist/worker-accept/context.js +0 -2
- package/dist/worker-accept/telemetry-ledger.js +0 -126
- package/dist/worker-accept/validation.js +0 -77
- package/dist/worker-accept/verifier-completion.js +0 -73
- package/dist/worker-isolation/helpers.js +0 -51
- package/dist/worker-isolation/paths.js +0 -46
- package/dist/worker-isolation.js +0 -656
- package/dist/workflow-api.js +0 -131
- /package/dist/{types → core/types}/boundary.js +0 -0
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.boardPaths = boardPaths;
|
|
7
|
-
exports.blackboardRoot = blackboardRoot;
|
|
8
|
-
exports.messagesPath = messagesPath;
|
|
9
|
-
exports.recordPath = recordPath;
|
|
10
|
-
// Filesystem path derivation for the coordinator/blackboard layer
|
|
11
|
-
// (FreeBSD-audit R-carve). Carved out of coordinator.ts so the module no longer
|
|
12
|
-
// bundles the per-run path computation alongside the stateful blackboard
|
|
13
|
-
// operations. Re-exported from coordinator.ts to keep the public surface
|
|
14
|
-
// byte-identical.
|
|
15
|
-
//
|
|
16
|
-
// BEHAVIOR-PRESERVING — pure code movement, zero logic change. Each function is a
|
|
17
|
-
// function of a WorkflowRun's paths only: it reads run.paths and joins names; it
|
|
18
|
-
// never mutates run, never touches the blackboard state, never writes the disk.
|
|
19
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
20
|
-
const state_1 = require("../state");
|
|
21
|
-
function boardPaths(run) {
|
|
22
|
-
const root = blackboardRoot(run);
|
|
23
|
-
return {
|
|
24
|
-
root,
|
|
25
|
-
index: node_path_1.default.join(root, "index.json"),
|
|
26
|
-
messages: messagesPath(run),
|
|
27
|
-
topicsDir: node_path_1.default.join(root, "topics"),
|
|
28
|
-
contextsDir: node_path_1.default.join(root, "contexts"),
|
|
29
|
-
artifactsDir: node_path_1.default.join(root, "artifacts"),
|
|
30
|
-
snapshotsDir: node_path_1.default.join(root, "snapshots"),
|
|
31
|
-
decisionsDir: node_path_1.default.join(root, "decisions")
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
function blackboardRoot(run) {
|
|
35
|
-
return run.paths.blackboardDir || node_path_1.default.join(run.paths.runDir, "blackboard");
|
|
36
|
-
}
|
|
37
|
-
function messagesPath(run) {
|
|
38
|
-
return node_path_1.default.join(blackboardRoot(run), "messages.jsonl");
|
|
39
|
-
}
|
|
40
|
-
function recordPath(run, kind, id) {
|
|
41
|
-
return node_path_1.default.join(blackboardRoot(run), kind, `${(0, state_1.safeFileName)(id)}.json`);
|
|
42
|
-
}
|
package/dist/coordinator/util.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createId = void 0;
|
|
7
|
-
exports.checksumFile = checksumFile;
|
|
8
|
-
exports.assertUnique = assertUnique;
|
|
9
|
-
exports.assertNoRecordPathCollisions = assertNoRecordPathCollisions;
|
|
10
|
-
exports.indexRow = indexRow;
|
|
11
|
-
exports.compareRecords = compareRecords;
|
|
12
|
-
exports.uniqueEdges = uniqueEdges;
|
|
13
|
-
exports.touch = touch;
|
|
14
|
-
exports.timestamp = timestamp;
|
|
15
|
-
exports.unique = unique;
|
|
16
|
-
exports.sortTags = sortTags;
|
|
17
|
-
exports.truncate = truncate;
|
|
18
|
-
exports.compact = compact;
|
|
19
|
-
exports.scrub = scrub;
|
|
20
|
-
// Pure, self-contained primitive helpers for the coordinator/blackboard layer
|
|
21
|
-
// (FreeBSD-audit R-carve). Carved out of coordinator.ts so the module no longer
|
|
22
|
-
// bundles the generic id/string/redaction utilities alongside the stateful
|
|
23
|
-
// blackboard operations. Re-exported from coordinator.ts to keep the public
|
|
24
|
-
// surface byte-identical.
|
|
25
|
-
//
|
|
26
|
-
// BEHAVIOR-PRESERVING — pure code movement, zero logic change. Every function
|
|
27
|
-
// here is a function of its inputs only: no WorkflowRun, no blackboard state, no
|
|
28
|
-
// filesystem mutation. They depend on node:crypto / node:fs only for checksum +
|
|
29
|
-
// file read, and on ./compare + ./state for the byte comparator and safe file
|
|
30
|
-
// name (the same helpers the originals used).
|
|
31
|
-
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
32
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
33
|
-
const compare_1 = require("../compare");
|
|
34
|
-
const state_1 = require("../state");
|
|
35
|
-
function checksumFile(file) {
|
|
36
|
-
return `sha256:${node_crypto_1.default.createHash("sha256").update(node_fs_1.default.readFileSync(file)).digest("hex")}`;
|
|
37
|
-
}
|
|
38
|
-
function assertUnique(items, id, label) {
|
|
39
|
-
if (items.some((item) => item.id === id))
|
|
40
|
-
throw new Error(`Duplicate ${label} id: ${id}`);
|
|
41
|
-
}
|
|
42
|
-
function assertNoRecordPathCollisions(label, records) {
|
|
43
|
-
const seen = new Map();
|
|
44
|
-
for (const record of records) {
|
|
45
|
-
const safe = (0, state_1.safeFileName)(record.id);
|
|
46
|
-
const existing = seen.get(safe);
|
|
47
|
-
if (existing && existing !== record.id) {
|
|
48
|
-
throw new Error(`${label} ids ${existing} and ${record.id} collide on safe file name ${safe}`);
|
|
49
|
-
}
|
|
50
|
-
seen.set(safe, record.id);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
function indexRow(record) {
|
|
54
|
-
return { id: record.id, blackboardId: record.blackboardId, topicId: record.topicId, status: record.status, updatedAt: record.updatedAt };
|
|
55
|
-
}
|
|
56
|
-
function compareRecords(left, right) {
|
|
57
|
-
return (0, compare_1.compareBytes)(left.createdAt, right.createdAt) || (0, compare_1.compareBytes)(left.id, right.id);
|
|
58
|
-
}
|
|
59
|
-
function uniqueEdges(edges) {
|
|
60
|
-
const seen = new Set();
|
|
61
|
-
const result = [];
|
|
62
|
-
for (const edge of edges) {
|
|
63
|
-
const key = `${edge.from}\0${edge.to}\0${edge.label || ""}`;
|
|
64
|
-
if (seen.has(key))
|
|
65
|
-
continue;
|
|
66
|
-
seen.add(key);
|
|
67
|
-
result.push(edge);
|
|
68
|
-
}
|
|
69
|
-
return result;
|
|
70
|
-
}
|
|
71
|
-
// Deterministic record id — single source of truth in ../multi-agent/ids.
|
|
72
|
-
// Re-exported here so coordinator.ts importers stay byte-unchanged (F10 dedup:
|
|
73
|
-
// the multi-agent kernel shares the exact same helper).
|
|
74
|
-
var ids_1 = require("../multi-agent/ids");
|
|
75
|
-
Object.defineProperty(exports, "createId", { enumerable: true, get: function () { return ids_1.createId; } });
|
|
76
|
-
function touch(record) {
|
|
77
|
-
record.updatedAt = timestamp();
|
|
78
|
-
return record;
|
|
79
|
-
}
|
|
80
|
-
function timestamp() {
|
|
81
|
-
return new Date().toISOString();
|
|
82
|
-
}
|
|
83
|
-
function unique(values) {
|
|
84
|
-
return Array.from(new Set(values.filter(Boolean))).sort();
|
|
85
|
-
}
|
|
86
|
-
function sortTags(values) {
|
|
87
|
-
return unique(values || []);
|
|
88
|
-
}
|
|
89
|
-
function truncate(value) {
|
|
90
|
-
return value.length > 64 ? `${value.slice(0, 61)}...` : value;
|
|
91
|
-
}
|
|
92
|
-
function compact(value) {
|
|
93
|
-
return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined && (!Array.isArray(entry) || entry.length > 0)));
|
|
94
|
-
}
|
|
95
|
-
// Recursive secret redaction (v0.1.40 self-audit P3): the previous scrub only
|
|
96
|
-
// inspected TOP-LEVEL keys, so a secret nested under an allowed key
|
|
97
|
-
// (e.g. `metadata.config.token`) leaked into the recorded coordinator decision.
|
|
98
|
-
// Now we recurse into nested objects and arrays so a secret-named key at any depth
|
|
99
|
-
// is dropped and an obvious credential value is redacted.
|
|
100
|
-
const SECRET_KEY_RE = /secret|token|password|credential|authorization|api[_-]?key|env/i;
|
|
101
|
-
const SECRET_VALUE_RE = /secret|token|password|credential/i;
|
|
102
|
-
function scrubValue(value) {
|
|
103
|
-
if (Array.isArray(value))
|
|
104
|
-
return value.map(scrubValue);
|
|
105
|
-
if (value && typeof value === "object")
|
|
106
|
-
return scrub(value);
|
|
107
|
-
if (typeof value === "string" && SECRET_VALUE_RE.test(value))
|
|
108
|
-
return "[redacted]";
|
|
109
|
-
return value;
|
|
110
|
-
}
|
|
111
|
-
function scrub(value) {
|
|
112
|
-
if (!value)
|
|
113
|
-
return undefined;
|
|
114
|
-
const result = {};
|
|
115
|
-
for (const [key, entry] of Object.entries(value)) {
|
|
116
|
-
if (entry === undefined)
|
|
117
|
-
continue;
|
|
118
|
-
if (SECRET_KEY_RE.test(key)) {
|
|
119
|
-
result[key] = "[redacted]";
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
result[key] = scrubValue(entry);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return Object.keys(result).length ? result : undefined;
|
|
126
|
-
}
|