@jungjaehoon/mama-os 0.51.2 → 0.52.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/dist/agent/agent-loop.d.ts +50 -0
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +480 -138
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/code-act/constants.d.ts +1 -1
- package/dist/agent/code-act/constants.d.ts.map +1 -1
- package/dist/agent/code-act/constants.js +5 -2
- package/dist/agent/code-act/constants.js.map +1 -1
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +102 -4
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/code-act/tool-catalog.d.ts +2 -0
- package/dist/agent/code-act/tool-catalog.d.ts.map +1 -1
- package/dist/agent/code-act/tool-catalog.js +20 -7
- package/dist/agent/code-act/tool-catalog.js.map +1 -1
- package/dist/agent/codex-app-server-process.d.ts +112 -0
- package/dist/agent/codex-app-server-process.d.ts.map +1 -1
- package/dist/agent/codex-app-server-process.js +518 -1
- package/dist/agent/codex-app-server-process.js.map +1 -1
- package/dist/agent/gateway-tool-executor.d.ts +17 -0
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +236 -53
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +9 -3
- package/dist/agent/model-runner.d.ts +5 -0
- package/dist/agent/model-runner.d.ts.map +1 -1
- package/dist/agent/model-runner.js.map +1 -1
- package/dist/agent/skill-loader.d.ts +7 -2
- package/dist/agent/skill-loader.d.ts.map +1 -1
- package/dist/agent/skill-loader.js +29 -8
- package/dist/agent/skill-loader.js.map +1 -1
- package/dist/agent/subagent-run-reconcile.d.ts +23 -0
- package/dist/agent/subagent-run-reconcile.d.ts.map +1 -0
- package/dist/agent/subagent-run-reconcile.js +56 -0
- package/dist/agent/subagent-run-reconcile.js.map +1 -0
- package/dist/agent/tool-registry.d.ts.map +1 -1
- package/dist/agent/tool-registry.js +126 -3
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +52 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/graph-api.d.ts.map +1 -1
- package/dist/api/graph-api.js +0 -22
- package/dist/api/graph-api.js.map +1 -1
- package/dist/cli/commands/start.d.ts +8 -7
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +148 -74
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +2 -1
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/runtime/api-routes-init.d.ts +1 -0
- package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
- package/dist/cli/runtime/api-routes-init.js +76 -32
- package/dist/cli/runtime/api-routes-init.js.map +1 -1
- package/dist/db/migrations/operator-procedures.d.ts +4 -0
- package/dist/db/migrations/operator-procedures.d.ts.map +1 -0
- package/dist/db/migrations/operator-procedures.js +63 -0
- package/dist/db/migrations/operator-procedures.js.map +1 -0
- package/dist/gateways/message-router.d.ts +4 -3
- package/dist/gateways/message-router.d.ts.map +1 -1
- package/dist/gateways/message-router.js +43 -131
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/telegram-format.d.ts.map +1 -1
- package/dist/gateways/telegram-format.js +2 -0
- package/dist/gateways/telegram-format.js.map +1 -1
- package/dist/multi-agent/runtime-process.d.ts +8 -0
- package/dist/multi-agent/runtime-process.d.ts.map +1 -1
- package/dist/multi-agent/runtime-process.js +6 -0
- package/dist/multi-agent/runtime-process.js.map +1 -1
- package/dist/operator/board-delta-gate.d.ts +34 -10
- package/dist/operator/board-delta-gate.d.ts.map +1 -1
- package/dist/operator/board-delta-gate.js +68 -24
- package/dist/operator/board-delta-gate.js.map +1 -1
- package/dist/operator/board-refresh-gate.d.ts +11 -6
- package/dist/operator/board-refresh-gate.d.ts.map +1 -1
- package/dist/operator/board-refresh-gate.js +12 -11
- package/dist/operator/board-refresh-gate.js.map +1 -1
- package/dist/operator/board-slot-instructions.d.ts +30 -0
- package/dist/operator/board-slot-instructions.d.ts.map +1 -1
- package/dist/operator/board-slot-instructions.js +110 -6
- package/dist/operator/board-slot-instructions.js.map +1 -1
- package/dist/operator/console-brief.d.ts +26 -13
- package/dist/operator/console-brief.d.ts.map +1 -1
- package/dist/operator/console-brief.js +159 -83
- package/dist/operator/console-brief.js.map +1 -1
- package/dist/operator/experience-evidence.d.ts +18 -0
- package/dist/operator/experience-evidence.d.ts.map +1 -0
- package/dist/operator/experience-evidence.js +82 -0
- package/dist/operator/experience-evidence.js.map +1 -0
- package/dist/operator/experience-hints.d.ts +44 -0
- package/dist/operator/experience-hints.d.ts.map +1 -0
- package/dist/operator/experience-hints.js +98 -0
- package/dist/operator/experience-hints.js.map +1 -0
- package/dist/operator/mama-memory-port.js +1 -3
- package/dist/operator/mama-memory-port.js.map +1 -1
- package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
- package/dist/operator/operator-trigger-loop.js +3 -2
- package/dist/operator/operator-trigger-loop.js.map +1 -1
- package/dist/operator/owner-action-effects.d.ts +13 -1
- package/dist/operator/owner-action-effects.d.ts.map +1 -1
- package/dist/operator/owner-action-effects.js +17 -4
- package/dist/operator/owner-action-effects.js.map +1 -1
- package/dist/operator/owner-event-inbox.d.ts +7 -1
- package/dist/operator/owner-event-inbox.d.ts.map +1 -1
- package/dist/operator/owner-event-inbox.js +8 -0
- package/dist/operator/owner-event-inbox.js.map +1 -1
- package/dist/operator/owner-event-loop.d.ts +28 -2
- package/dist/operator/owner-event-loop.d.ts.map +1 -1
- package/dist/operator/owner-event-loop.js +60 -2
- package/dist/operator/owner-event-loop.js.map +1 -1
- package/dist/operator/owner-event-policy.d.ts +20 -0
- package/dist/operator/owner-event-policy.d.ts.map +1 -1
- package/dist/operator/owner-event-policy.js +34 -5
- package/dist/operator/owner-event-policy.js.map +1 -1
- package/dist/operator/owner-event-prompt.d.ts +13 -4
- package/dist/operator/owner-event-prompt.d.ts.map +1 -1
- package/dist/operator/owner-event-prompt.js +31 -38
- package/dist/operator/owner-event-prompt.js.map +1 -1
- package/dist/operator/owner-runtime-journal.d.ts.map +1 -1
- package/dist/operator/owner-runtime-journal.js +7 -3
- package/dist/operator/owner-runtime-journal.js.map +1 -1
- package/dist/operator/owner-runtime.d.ts +6 -0
- package/dist/operator/owner-runtime.d.ts.map +1 -1
- package/dist/operator/owner-runtime.js +48 -5
- package/dist/operator/owner-runtime.js.map +1 -1
- package/dist/operator/procedure-activation.d.ts +7 -0
- package/dist/operator/procedure-activation.d.ts.map +1 -0
- package/dist/operator/procedure-activation.js +132 -0
- package/dist/operator/procedure-activation.js.map +1 -0
- package/dist/operator/procedure-projection.d.ts +25 -0
- package/dist/operator/procedure-projection.d.ts.map +1 -0
- package/dist/operator/procedure-projection.js +80 -0
- package/dist/operator/procedure-projection.js.map +1 -0
- package/dist/operator/procedure-runtime.d.ts +45 -0
- package/dist/operator/procedure-runtime.d.ts.map +1 -0
- package/dist/operator/procedure-runtime.js +496 -0
- package/dist/operator/procedure-runtime.js.map +1 -0
- package/dist/operator/procedure-store.d.ts +97 -0
- package/dist/operator/procedure-store.d.ts.map +1 -0
- package/dist/operator/procedure-store.js +368 -0
- package/dist/operator/procedure-store.js.map +1 -0
- package/dist/operator/subagent-stimulus.d.ts +34 -0
- package/dist/operator/subagent-stimulus.d.ts.map +1 -0
- package/dist/operator/subagent-stimulus.js +145 -0
- package/dist/operator/subagent-stimulus.js.map +1 -0
- package/dist/operator/task-ledger.d.ts +40 -3
- package/dist/operator/task-ledger.d.ts.map +1 -1
- package/dist/operator/task-ledger.js +63 -10
- package/dist/operator/task-ledger.js.map +1 -1
- package/dist/operator/thread-brief-memory.d.ts +29 -0
- package/dist/operator/thread-brief-memory.d.ts.map +1 -0
- package/dist/operator/thread-brief-memory.js +61 -0
- package/dist/operator/thread-brief-memory.js.map +1 -0
- package/dist/operator/trigger-author.d.ts +2 -1
- package/dist/operator/trigger-author.d.ts.map +1 -1
- package/dist/operator/trigger-author.js +23 -0
- package/dist/operator/trigger-author.js.map +1 -1
- package/dist/operator/trigger-matcher.js +1 -0
- package/dist/operator/trigger-matcher.js.map +1 -1
- package/dist/operator/trigger-registry.d.ts +5 -4
- package/dist/operator/trigger-registry.d.ts.map +1 -1
- package/dist/operator/trigger-registry.js +78 -24
- package/dist/operator/trigger-registry.js.map +1 -1
- package/dist/operator/trigger-review.d.ts +1 -1
- package/dist/operator/trigger-review.d.ts.map +1 -1
- package/dist/operator/trigger-review.js +24 -4
- package/dist/operator/trigger-review.js.map +1 -1
- package/dist/operator/trigger-types.d.ts +10 -1
- package/dist/operator/trigger-types.d.ts.map +1 -1
- package/dist/operator/worker-run.d.ts +7 -1
- package/dist/operator/worker-run.d.ts.map +1 -1
- package/dist/operator/worker-run.js +5 -2
- package/dist/operator/worker-run.js.map +1 -1
- package/dist/operator/workorder-consumer.d.ts +91 -14
- package/dist/operator/workorder-consumer.d.ts.map +1 -1
- package/dist/operator/workorder-consumer.js +272 -93
- package/dist/operator/workorder-consumer.js.map +1 -1
- package/dist/operator/workorder-hooks.d.ts +42 -9
- package/dist/operator/workorder-hooks.d.ts.map +1 -1
- package/dist/operator/workorder-hooks.js +52 -13
- package/dist/operator/workorder-hooks.js.map +1 -1
- package/dist/operator/workorder-publishers.d.ts +9 -1
- package/dist/operator/workorder-publishers.d.ts.map +1 -1
- package/dist/operator/workorder-publishers.js +21 -2
- package/dist/operator/workorder-publishers.js.map +1 -1
- package/package.json +2 -2
- package/dist/operator/learning-context.d.ts +0 -49
- package/dist/operator/learning-context.d.ts.map +0 -1
- package/dist/operator/learning-context.js +0 -129
- package/dist/operator/learning-context.js.map +0 -1
- package/dist/operator/learning-markers.d.ts +0 -19
- package/dist/operator/learning-markers.d.ts.map +0 -1
- package/dist/operator/learning-markers.js +0 -147
- package/dist/operator/learning-markers.js.map +0 -1
- package/dist/operator/learning-read.d.ts +0 -16
- package/dist/operator/learning-read.d.ts.map +0 -1
- package/dist/operator/learning-read.js +0 -18
- package/dist/operator/learning-read.js.map +0 -1
- package/dist/operator/turn-observer.d.ts +0 -34
- package/dist/operator/turn-observer.d.ts.map +0 -1
- package/dist/operator/turn-observer.js +0 -79
- package/dist/operator/turn-observer.js.map +0 -1
- package/templates/skills/heartbeat-report.md +0 -75
|
@@ -14,7 +14,12 @@
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.BOARD_SLOT_ORDER = void 0;
|
|
16
16
|
exports.buildBoardHtmlVocabulary = buildBoardHtmlVocabulary;
|
|
17
|
+
exports.buildBoardSlotShapeLines = buildBoardSlotShapeLines;
|
|
18
|
+
exports.buildReportPublishToolContract = buildReportPublishToolContract;
|
|
17
19
|
exports.buildBoardPublishLines = buildBoardPublishLines;
|
|
20
|
+
exports.boardHtmlClassVocabulary = boardHtmlClassVocabulary;
|
|
21
|
+
exports.boardStructuralClasses = boardStructuralClasses;
|
|
22
|
+
exports.htmlUsesBoardVocabulary = htmlUsesBoardVocabulary;
|
|
18
23
|
exports.BOARD_SLOT_ORDER = ['briefing', 'action_required', 'decisions', 'pipeline'];
|
|
19
24
|
/** The exact HTML shapes the board stylesheet understands. */
|
|
20
25
|
function buildBoardHtmlVocabulary() {
|
|
@@ -32,23 +37,122 @@ function buildBoardHtmlVocabulary() {
|
|
|
32
37
|
'- Temporal badges are separate facts: badge-danger (overdue), badge-warning (due today),',
|
|
33
38
|
' badge-info (upcoming), badge-success (closed).',
|
|
34
39
|
'- Pipeline table: <table class="report-table"><thead><tr><th>...</th></tr></thead><tbody>rows</tbody></table>',
|
|
35
|
-
'
|
|
40
|
+
'The board sanitizes script, iframe, object, embed, form, link, meta and base tags plus event',
|
|
41
|
+
'handlers out of every slot; inline styles fight the board stylesheet, so do not write them.',
|
|
36
42
|
];
|
|
37
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Per-slot shape the board expects. Single source for the legacy persona's
|
|
46
|
+
* publish block and for the report_publish tool contract the standing owner
|
|
47
|
+
* runtime reads through tool_describe at publish time.
|
|
48
|
+
*/
|
|
49
|
+
function buildBoardSlotShapeLines() {
|
|
50
|
+
return [
|
|
51
|
+
'- pipeline: rendered by the host from the task ledger and already published. Never write it.',
|
|
52
|
+
'- briefing: one report-summary block (title + stat highlights), then up to 4 report-cards for the key situations.',
|
|
53
|
+
'- action_required: a report-section-title, then up to 5 report-cards; every card-action states the concrete next step.',
|
|
54
|
+
'- decisions: report-cards for items waiting on an owner decision or confirmation; omit filler when none exist,',
|
|
55
|
+
' but still publish the slot with a one-line quiet note.',
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The report_publish tool description. The board's class vocabulary belongs
|
|
60
|
+
* with the tool that publishes it, not in per-turn prompt text: an agent that
|
|
61
|
+
* describes report_publish before calling it learns the shape the board styles.
|
|
62
|
+
*/
|
|
63
|
+
function buildReportPublishToolContract() {
|
|
64
|
+
const inline = (lines) => lines.join(' ').replace(/\s+/g, ' ').trim();
|
|
65
|
+
return inline([
|
|
66
|
+
'Publish dashboard analysis as HTML.',
|
|
67
|
+
'pipeline is a managed live task projection; change tasks instead.',
|
|
68
|
+
'Supply the task basis actually used for analysis; omission means its basis is unknown.',
|
|
69
|
+
'SLOT SHAPE:',
|
|
70
|
+
...buildBoardSlotShapeLines(),
|
|
71
|
+
...buildBoardHtmlVocabulary(),
|
|
72
|
+
"Write slot CONTENT in the owner's language; keep each slot under 6KB.",
|
|
73
|
+
'A slot that contains none of report-summary / report-card / report-section-title / report-table',
|
|
74
|
+
'is still published, but the result reports it back as a',
|
|
75
|
+
'warning because the board renders it as plain text.',
|
|
76
|
+
]);
|
|
77
|
+
}
|
|
38
78
|
/** Instruction block that makes a report run also publish the board slots. */
|
|
39
79
|
function buildBoardPublishLines() {
|
|
40
80
|
return [
|
|
41
81
|
'BEFORE writing your text report, update the operator board: call the report_publish',
|
|
42
82
|
'gateway tool EXACTLY once with the THREE judgment slots:',
|
|
43
83
|
' report_publish({ slots: { briefing: "<html>", action_required: "<html>", decisions: "<html>" } })',
|
|
44
|
-
|
|
45
|
-
'- briefing: one report-summary block (title + stat highlights), then up to 4 item cards for the key situations.',
|
|
46
|
-
'- action_required: a report-section-title, then up to 5 cards; every card-action states the concrete next step.',
|
|
47
|
-
'- decisions: cards for items waiting on an owner decision or confirmation; omit filler when none exist,',
|
|
48
|
-
' but still publish the slot with a one-line quiet note.',
|
|
84
|
+
...buildBoardSlotShapeLines(),
|
|
49
85
|
...buildBoardHtmlVocabulary(),
|
|
50
86
|
"Write all slot CONTENT in the owner's language (match the channels); keep each slot under 6KB.",
|
|
51
87
|
'The plain-text report you write afterwards is a separate output: no HTML in it.',
|
|
52
88
|
];
|
|
53
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* The STRUCTURAL block classes: the ones the board stylesheet needs in order to
|
|
92
|
+
* render a slot as a board block rather than plain text. Sub-element classes
|
|
93
|
+
* (card-header, card-title, card-badge, badge-*, tag-*, summary-*) only decorate
|
|
94
|
+
* a structural block, so they prove nothing on their own -- the live 19:59/20:06
|
|
95
|
+
* slots carried `card`/`card-grid`/`badge-info` and still rendered unstyled.
|
|
96
|
+
* Single source: `boardHtmlClassVocabulary().structural`.
|
|
97
|
+
*/
|
|
98
|
+
const BOARD_STRUCTURAL_CLASSES = [
|
|
99
|
+
'report-summary',
|
|
100
|
+
'report-section-title',
|
|
101
|
+
'report-card',
|
|
102
|
+
'report-table',
|
|
103
|
+
];
|
|
104
|
+
/**
|
|
105
|
+
* The class tokens the board stylesheet understands, derived from the SAME
|
|
106
|
+
* vocabulary text the agent is shown. There is no second copy of the list: if
|
|
107
|
+
* a class is added to buildBoardHtmlVocabulary() it becomes recognised here.
|
|
108
|
+
* `structural` marks the subset that makes a slot count as board HTML.
|
|
109
|
+
*/
|
|
110
|
+
function boardHtmlClassVocabulary() {
|
|
111
|
+
const classes = new Set();
|
|
112
|
+
for (const line of buildBoardHtmlVocabulary()) {
|
|
113
|
+
for (const match of line.matchAll(/class="([^"]*)"/g)) {
|
|
114
|
+
for (const token of match[1].split(/\s+/)) {
|
|
115
|
+
if (token)
|
|
116
|
+
classes.add(token);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// badge-*/tag-* variants are enumerated in prose, not inside a class attribute.
|
|
120
|
+
for (const match of line.matchAll(/\b(?:badge|tag)-[a-z]+\b/g)) {
|
|
121
|
+
classes.add(match[0]);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
// The structural names must actually appear in the vocabulary the agent is
|
|
125
|
+
// shown; a silent drift would make the predicate unreachable.
|
|
126
|
+
const structural = new Set();
|
|
127
|
+
for (const name of BOARD_STRUCTURAL_CLASSES) {
|
|
128
|
+
if (!classes.has(name)) {
|
|
129
|
+
throw new Error(`Board vocabulary text no longer contains structural class ${name}`);
|
|
130
|
+
}
|
|
131
|
+
structural.add(name);
|
|
132
|
+
}
|
|
133
|
+
return Object.assign(classes, { structural });
|
|
134
|
+
}
|
|
135
|
+
/** The structural block classes, in vocabulary order. */
|
|
136
|
+
function boardStructuralClasses() {
|
|
137
|
+
return BOARD_STRUCTURAL_CLASSES;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* True when slot HTML carries at least one STRUCTURAL board class token.
|
|
141
|
+
* Exact: only class attribute tokens count, never substrings of prose. A slot
|
|
142
|
+
* built out of sub-element classes alone (badge-*, tag-*, summary-*, card-*)
|
|
143
|
+
* does NOT pass -- the board renders it as plain text.
|
|
144
|
+
*/
|
|
145
|
+
function htmlUsesBoardVocabulary(html) {
|
|
146
|
+
if (typeof html !== 'string' || html.length === 0)
|
|
147
|
+
return false;
|
|
148
|
+
const { structural } = boardHtmlClassVocabulary();
|
|
149
|
+
for (const match of html.matchAll(/class\s*=\s*(?:"([^"]*)"|'([^']*)')/g)) {
|
|
150
|
+
const value = match[1] ?? match[2] ?? '';
|
|
151
|
+
for (const token of value.split(/\s+/)) {
|
|
152
|
+
if (token && structural.has(token))
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
54
158
|
//# sourceMappingURL=board-slot-instructions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-slot-instructions.js","sourceRoot":"","sources":["../../src/operator/board-slot-instructions.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAKH,
|
|
1
|
+
{"version":3,"file":"board-slot-instructions.js","sourceRoot":"","sources":["../../src/operator/board-slot-instructions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { hashProcedureDocument } from './procedure-projection.js';
|
|
1
2
|
import { type PrivateConnectorPolicy } from '../connectors/private-connector-policy.js';
|
|
2
3
|
/** Full-replace ceiling with headroom for a mature manual while preventing a
|
|
3
4
|
* runaway self-edit from bloating every future prompt. */
|
|
4
5
|
export declare const CONSOLE_BRIEF_MAX_CHARS = 32000;
|
|
5
|
-
export declare const CONSOLE_BRIEF_DEFAULT = "# Owner Console Operating Brief\n\nThis file is
|
|
6
|
+
export declare const CONSOLE_BRIEF_DEFAULT = "# Owner Console Operating Brief\n\nThis file is yours; upgrades never overwrite it. It holds standing operating rules only.\nHow you work is learned from the owner's corrections: store each one with procedure_update\n(when_to_use / when_not_to_use) in the turn it arrives. This brief is not a lesson log.\nCorrect one of its rules with console_brief_update (replace or retire an exact target with the\nexpected_hash from procedure_read({id:\"owner-console-brief\"})). Saving is not proof of changed behavior.\n";
|
|
7
|
+
/** Upgrade only the known, code-owned legacy tool mechanism when rendering a modern runtime.
|
|
8
|
+
* The stored original and all owner business rules remain untouched. */
|
|
9
|
+
export declare function modernizeLegacyBriefMechanism(raw: string): string;
|
|
6
10
|
export declare function consoleBriefPath(homeDir?: string): string;
|
|
7
11
|
/** Boot seeding - write the packaged default ONLY when missing (agent/user
|
|
8
12
|
* edits always win; deliberate no-auto-upgrade, mirroring ensureBriefs). */
|
|
@@ -11,17 +15,26 @@ export declare function ensureConsoleBrief(homeDir?: string): boolean;
|
|
|
11
15
|
export declare function loadConsoleBrief(homeDir?: string): string;
|
|
12
16
|
/** Project a user-owned brief for one prompt without modifying its file. */
|
|
13
17
|
export declare function projectConsoleBriefForPrompt(raw: string, policy: PrivateConnectorPolicy): string;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
export declare const hashConsoleBrief: typeof hashProcedureDocument;
|
|
19
|
+
export declare function readConsoleBriefSnapshot(homeDir?: string): {
|
|
20
|
+
path: string;
|
|
21
|
+
text: string;
|
|
22
|
+
hash: string | null;
|
|
23
|
+
};
|
|
24
|
+
export interface ConsoleBriefUpdate {
|
|
25
|
+
operation: 'append' | 'replace' | 'retire';
|
|
26
|
+
lesson?: string;
|
|
27
|
+
target?: string;
|
|
28
|
+
replacement?: string;
|
|
29
|
+
expectedHash?: string;
|
|
30
|
+
}
|
|
31
|
+
/** Pure preparation: the canonical store commits this text and its old revision
|
|
32
|
+
* before attempting Markdown publication. No full-document replace operation.
|
|
25
33
|
*/
|
|
26
|
-
export declare function
|
|
34
|
+
export declare function prepareConsoleBriefUpdate(input: ConsoleBriefUpdate, current: string): {
|
|
35
|
+
text: string;
|
|
36
|
+
priorHash: string;
|
|
37
|
+
hash: string;
|
|
38
|
+
};
|
|
39
|
+
/** Legacy append-only API, preserving its return value and seed-on-missing behavior. */
|
|
27
40
|
//# sourceMappingURL=console-brief.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-brief.d.ts","sourceRoot":"","sources":["../../src/operator/console-brief.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAOxF;0DAC0D;AAC1D,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAU9C,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"console-brief.d.ts","sourceRoot":"","sources":["../../src/operator/console-brief.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAOxF;0DAC0D;AAC1D,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAU9C,eAAO,MAAM,qBAAqB,mgBAOjC,CAAC;AAEF;wEACwE;AACxE,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmDjE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,MAAkB,GAAG,MAAM,CAEpE;AAED;6EAC6E;AAC7E,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,MAAkB,GAAG,OAAO,CAkBvE;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,MAAkB,GAAG,MAAM,CAIpE;AAeD,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAWhG;AAED,eAAO,MAAM,gBAAgB,8BAAwB,CAAC;AAEtD,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,MAAkB,GAAG;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAIA;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,MAAM,GACd;IACD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CA4FA;AAED,wFAAwF"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CONSOLE_BRIEF_DEFAULT = exports.CONSOLE_BRIEF_MAX_CHARS = void 0;
|
|
3
|
+
exports.hashConsoleBrief = exports.CONSOLE_BRIEF_DEFAULT = exports.CONSOLE_BRIEF_MAX_CHARS = void 0;
|
|
4
|
+
exports.modernizeLegacyBriefMechanism = modernizeLegacyBriefMechanism;
|
|
4
5
|
exports.consoleBriefPath = consoleBriefPath;
|
|
5
6
|
exports.ensureConsoleBrief = ensureConsoleBrief;
|
|
6
7
|
exports.loadConsoleBrief = loadConsoleBrief;
|
|
7
8
|
exports.projectConsoleBriefForPrompt = projectConsoleBriefForPrompt;
|
|
8
|
-
exports.
|
|
9
|
+
exports.readConsoleBriefSnapshot = readConsoleBriefSnapshot;
|
|
10
|
+
exports.prepareConsoleBriefUpdate = prepareConsoleBriefUpdate;
|
|
9
11
|
/**
|
|
10
12
|
* Owner-console operating brief - the agent-owned operations manual.
|
|
11
13
|
*
|
|
@@ -26,6 +28,8 @@ exports.appendConsoleBriefLesson = appendConsoleBriefLesson;
|
|
|
26
28
|
*/
|
|
27
29
|
const node_fs_1 = require("node:fs");
|
|
28
30
|
const node_os_1 = require("node:os");
|
|
31
|
+
const node_crypto_1 = require("node:crypto");
|
|
32
|
+
const procedure_projection_js_1 = require("./procedure-projection.js");
|
|
29
33
|
const node_path_1 = require("node:path");
|
|
30
34
|
const private_prompt_overlay_js_1 = require("../connectors/private-prompt-overlay.js");
|
|
31
35
|
/** Full-replace ceiling with headroom for a mature manual while preventing a
|
|
@@ -40,50 +44,60 @@ const LEGACY_CONSOLE_PRIVATE_LINES = new Set([
|
|
|
40
44
|
]);
|
|
41
45
|
exports.CONSOLE_BRIEF_DEFAULT = `# Owner Console Operating Brief
|
|
42
46
|
|
|
43
|
-
This file is
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
failure.
|
|
49
|
-
|
|
50
|
-
## Reporting philosophy
|
|
51
|
-
|
|
52
|
-
- A report is analysis, not a listing. Cross-check at least two sources
|
|
53
|
-
(board/tasks vs channel messages) before stating a situation.
|
|
54
|
-
- Cite where each claim came from, with the source timestamp. An uncited
|
|
55
|
-
claim is a guess.
|
|
56
|
-
- Quote the key channel line when it drives a conclusion; name the room and
|
|
57
|
-
sender exactly as the source shows them.
|
|
58
|
-
- Lead with what changed and what needs the owner; keep the quiet parts to
|
|
59
|
-
one line.
|
|
60
|
-
|
|
61
|
-
## Procedure recipes (grow this section from experience)
|
|
62
|
-
|
|
63
|
-
- Status questions: artifacts first (board_read, audit_findings_read), then
|
|
64
|
-
live queries; memory recall last and cited.
|
|
65
|
-
- Business data: use only tools present in the current run catalog. Start with
|
|
66
|
-
a broad summary, narrow to active entities or tasks, then inspect specific
|
|
67
|
-
channels without widening a supplied time window.
|
|
68
|
-
- Cross-channel synthesis: anchor items on their task id (relatedTaskId)
|
|
69
|
-
so the same work seen in two rooms stays one item.
|
|
70
|
-
|
|
71
|
-
## Situational awareness
|
|
72
|
-
|
|
73
|
-
- Delta events name what changed since your last look; answer against the
|
|
74
|
-
delta first, then the wider window.
|
|
75
|
-
- After a context gap (compaction, restart), rebuild from storage - recall
|
|
76
|
-
and artifacts - never from what you assume you remember.
|
|
77
|
-
|
|
78
|
-
## Self-update rule
|
|
79
|
-
|
|
80
|
-
- When the owner corrects your working style, or a recipe above proves
|
|
81
|
-
wrong, call console_brief_update({lesson}) in the same turn and say you
|
|
82
|
-
did. One concrete lesson per call; the file itself is curated by the
|
|
83
|
-
owner - you only ever add.
|
|
84
|
-
|
|
85
|
-
## Lessons
|
|
47
|
+
This file is yours; upgrades never overwrite it. It holds standing operating rules only.
|
|
48
|
+
How you work is learned from the owner's corrections: store each one with procedure_update
|
|
49
|
+
(when_to_use / when_not_to_use) in the turn it arrives. This brief is not a lesson log.
|
|
50
|
+
Correct one of its rules with console_brief_update (replace or retire an exact target with the
|
|
51
|
+
expected_hash from procedure_read({id:"owner-console-brief"})). Saving is not proof of changed behavior.
|
|
86
52
|
`;
|
|
53
|
+
/** Upgrade only the known, code-owned legacy tool mechanism when rendering a modern runtime.
|
|
54
|
+
* The stored original and all owner business rules remain untouched. */
|
|
55
|
+
function modernizeLegacyBriefMechanism(raw) {
|
|
56
|
+
const shortIntroduction = 'When the owner corrects how you work, or a procedure fails and you learn the\n' +
|
|
57
|
+
'fix, record it with console_brief_update({lesson}) - one durable lesson per\n' +
|
|
58
|
+
"call, appended below with today's date while everything above is preserved.";
|
|
59
|
+
const oldIntroduction = shortIntroduction +
|
|
60
|
+
'\n' +
|
|
61
|
+
'This is how your operating manual grows; losing a lesson means repeating the\n' +
|
|
62
|
+
'failure.';
|
|
63
|
+
const oldSelfUpdate = '- When the owner corrects your working style, or a recipe above proves\n' +
|
|
64
|
+
' wrong, call console_brief_update({lesson}) in the same turn and say you\n' +
|
|
65
|
+
' did. One concrete lesson per call; the file itself is curated by the\n' +
|
|
66
|
+
' owner - you only ever add.';
|
|
67
|
+
const correctedIntroduction = 'Store owner corrections with procedure_update (when_to_use / when_not_to_use). Correct one existing brief rule with console_brief_update replace or retire and expected_hash; the brief is not a lesson log. Saving is not proof of changed behavior.';
|
|
68
|
+
const replacements = [
|
|
69
|
+
// Replace the longer seed first so its obsolete continuation cannot survive.
|
|
70
|
+
[oldIntroduction, correctedIntroduction],
|
|
71
|
+
[shortIntroduction, correctedIntroduction],
|
|
72
|
+
[
|
|
73
|
+
oldSelfUpdate,
|
|
74
|
+
'- Store the correction with procedure_update in the same turn; correct a contradicted brief rule with console_brief_update replace or retire and expected_hash, preserving unrelated rules.',
|
|
75
|
+
],
|
|
76
|
+
];
|
|
77
|
+
const project = (text) => replacements.reduce((value, [before, after]) => value
|
|
78
|
+
.replace(before, after)
|
|
79
|
+
.replace(before.replace(/\n/g, '\r\n'), after.replace(/\n/g, '\r\n')), text);
|
|
80
|
+
let output = '';
|
|
81
|
+
let prose = '';
|
|
82
|
+
let fence = null;
|
|
83
|
+
for (const line of raw.match(/[^\n]*(?:\n|$)/g) ?? []) {
|
|
84
|
+
const marker = line.match(/^ {0,3}(`{3,}|~{3,})/);
|
|
85
|
+
if (!fence && marker) {
|
|
86
|
+
output += project(prose) + line;
|
|
87
|
+
prose = '';
|
|
88
|
+
fence = { char: marker[1][0], length: marker[1].length };
|
|
89
|
+
}
|
|
90
|
+
else if (fence) {
|
|
91
|
+
output += line;
|
|
92
|
+
if (marker && marker[1][0] === fence.char && marker[1].length >= fence.length)
|
|
93
|
+
fence = null;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
prose += line;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return output + project(prose);
|
|
100
|
+
}
|
|
87
101
|
function consoleBriefPath(homeDir = (0, node_os_1.homedir)()) {
|
|
88
102
|
return (0, node_path_1.join)(homeDir, '.mama', 'briefs', 'brief-owner-console.md');
|
|
89
103
|
}
|
|
@@ -94,10 +108,22 @@ function ensureConsoleBrief(homeDir = (0, node_os_1.homedir)()) {
|
|
|
94
108
|
if ((0, node_fs_1.existsSync)(path))
|
|
95
109
|
return false;
|
|
96
110
|
(0, node_fs_1.mkdirSync)((0, node_path_1.join)(homeDir, '.mama', 'briefs'), { recursive: true });
|
|
97
|
-
const tmpPath = `${path}.tmp`;
|
|
98
|
-
(0, node_fs_1.writeFileSync)(tmpPath, exports.CONSOLE_BRIEF_DEFAULT, '
|
|
99
|
-
|
|
100
|
-
|
|
111
|
+
const tmpPath = `${path}.${(0, node_crypto_1.randomUUID)()}.tmp`;
|
|
112
|
+
(0, node_fs_1.writeFileSync)(tmpPath, exports.CONSOLE_BRIEF_DEFAULT, { encoding: 'utf8', flag: 'wx', mode: 0o600 });
|
|
113
|
+
try {
|
|
114
|
+
// Exclusive publication keeps a concurrent human-created brief intact.
|
|
115
|
+
(0, node_fs_1.linkSync)(tmpPath, path);
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
if (error.code === 'EEXIST') {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
finally {
|
|
125
|
+
(0, node_fs_1.unlinkSync)(tmpPath);
|
|
126
|
+
}
|
|
101
127
|
}
|
|
102
128
|
/** Read the current brief; empty string when absent (caller seeds on boot). */
|
|
103
129
|
function loadConsoleBrief(homeDir = (0, node_os_1.homedir)()) {
|
|
@@ -128,43 +154,93 @@ function projectConsoleBriefForPrompt(raw, policy) {
|
|
|
128
154
|
const separator = projected.endsWith('\n\n') ? '' : projected.endsWith('\n') ? '\n' : '\n\n';
|
|
129
155
|
return `${projected}${separator}${overlay}\n`;
|
|
130
156
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
*
|
|
139
|
-
* Loud validation, no fallback: an empty lesson is refused, and a brief that
|
|
140
|
-
* would exceed the ceiling is refused (the manual needs owner curation),
|
|
141
|
-
* never truncated.
|
|
157
|
+
exports.hashConsoleBrief = procedure_projection_js_1.hashProcedureDocument;
|
|
158
|
+
function readConsoleBriefSnapshot(homeDir = (0, node_os_1.homedir)()) {
|
|
159
|
+
const path = consoleBriefPath(homeDir);
|
|
160
|
+
const text = loadConsoleBrief(homeDir);
|
|
161
|
+
return { path, text, hash: (0, node_fs_1.existsSync)(path) ? (0, exports.hashConsoleBrief)(text) : null };
|
|
162
|
+
}
|
|
163
|
+
/** Pure preparation: the canonical store commits this text and its old revision
|
|
164
|
+
* before attempting Markdown publication. No full-document replace operation.
|
|
142
165
|
*/
|
|
143
|
-
function
|
|
144
|
-
const
|
|
145
|
-
if (
|
|
146
|
-
throw new Error('console brief update refused:
|
|
166
|
+
function prepareConsoleBriefUpdate(input, current) {
|
|
167
|
+
const priorHash = (0, exports.hashConsoleBrief)(current);
|
|
168
|
+
if (input.expectedHash !== undefined && input.expectedHash !== priorHash) {
|
|
169
|
+
throw new Error('console brief update refused: expected hash conflict');
|
|
147
170
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
existing = loadConsoleBrief(homeDir);
|
|
171
|
+
let text;
|
|
172
|
+
if (input.operation === 'append') {
|
|
173
|
+
// Retired 2026-09-09: dated lesson lines accreted into a 10K brief with contradictory
|
|
174
|
+
// rules. Corrections are procedures now; the brief only ever changes by exact target.
|
|
175
|
+
throw new Error('console brief update refused: append is retired; store the correction with procedure_update');
|
|
154
176
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
177
|
+
else if (input.operation === 'replace' || input.operation === 'retire') {
|
|
178
|
+
if (!input.expectedHash) {
|
|
179
|
+
throw new Error('console brief update refused: expected hash required');
|
|
180
|
+
}
|
|
181
|
+
const target = input.target;
|
|
182
|
+
if (!target?.trim() || target.trim() === current.trim()) {
|
|
183
|
+
throw new Error('console brief update refused: exact partial target required');
|
|
184
|
+
}
|
|
185
|
+
const offset = current.indexOf(target);
|
|
186
|
+
if (offset < 0 || current.indexOf(target, offset + 1) >= 0) {
|
|
187
|
+
throw new Error('console brief update refused: missing or ambiguous target');
|
|
188
|
+
}
|
|
189
|
+
const end = offset + target.length;
|
|
190
|
+
if ((offset > 0 && current[offset - 1] !== '\n') ||
|
|
191
|
+
(end < current.length && !target.endsWith('\n') && !/^[\r\n]/.test(current.slice(end)))) {
|
|
192
|
+
throw new Error('console brief update refused: target must contain a complete rule or section');
|
|
193
|
+
}
|
|
194
|
+
const section = /^(#{2,6})[ \t]+/.exec(target);
|
|
195
|
+
if (section) {
|
|
196
|
+
const level = section[1].length;
|
|
197
|
+
const nextHeading = /^(#{1,6})[ \t]+/gm;
|
|
198
|
+
nextHeading.lastIndex = offset + target.split('\n')[0].length + 1;
|
|
199
|
+
let boundary = current.length;
|
|
200
|
+
let match;
|
|
201
|
+
while ((match = nextHeading.exec(current)) !== null) {
|
|
202
|
+
if (match[1].length <= level) {
|
|
203
|
+
boundary = match.index;
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
if (end > boundary || current.slice(end, boundary).trim()) {
|
|
208
|
+
throw new Error('console brief update refused: target must contain exactly one complete section');
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
const isListRule = /^[-*+] |^\d+[.)] /.test(target);
|
|
213
|
+
const precedingLine = current
|
|
214
|
+
.slice(0, offset)
|
|
215
|
+
.replace(/\r?\n$/, '')
|
|
216
|
+
.split(/\r?\n/)
|
|
217
|
+
.pop() ?? '';
|
|
218
|
+
if (/^#/.test(target) ||
|
|
219
|
+
/\n(?:#{1,6} |[-*+] |\d+[.)] )/.test(target) ||
|
|
220
|
+
(!isListRule && (precedingLine.trim() || /\r?\n\s*\r?\n/.test(target.trim())))) {
|
|
221
|
+
throw new Error('console brief update refused: target must contain one complete rule or section');
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
if (!section) {
|
|
225
|
+
const remainder = current.slice(end).replace(/^\r?\n/, '');
|
|
226
|
+
const followingLine = remainder.split(/\r?\n/)[0];
|
|
227
|
+
if (followingLine.trim() && !/^(?:#{1,6} |[-*+] |\d+[.)] )/.test(followingLine)) {
|
|
228
|
+
throw new Error('console brief update refused: target must contain the complete wrapped rule');
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
const replacement = input.operation === 'retire' ? '' : input.replacement;
|
|
232
|
+
if (replacement === undefined || (input.operation === 'replace' && !replacement.trim())) {
|
|
233
|
+
throw new Error('console brief update refused: nonempty replacement required');
|
|
234
|
+
}
|
|
235
|
+
text = current.slice(0, offset) + replacement + current.slice(end);
|
|
162
236
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
(
|
|
167
|
-
|
|
168
|
-
|
|
237
|
+
else {
|
|
238
|
+
throw new Error('console brief update refused: unsupported operation');
|
|
239
|
+
}
|
|
240
|
+
if (text.length > exports.CONSOLE_BRIEF_MAX_CHARS) {
|
|
241
|
+
throw new Error(`console brief update refused: ${text.length} chars exceeds ${exports.CONSOLE_BRIEF_MAX_CHARS}`);
|
|
242
|
+
}
|
|
243
|
+
return { text, priorHash, hash: (0, exports.hashConsoleBrief)(text) };
|
|
169
244
|
}
|
|
245
|
+
/** Legacy append-only API, preserving its return value and seed-on-missing behavior. */
|
|
170
246
|
//# sourceMappingURL=console-brief.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-brief.js","sourceRoot":"","sources":["../../src/operator/console-brief.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"console-brief.js","sourceRoot":"","sources":["../../src/operator/console-brief.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ProcedureAccess } from './procedure-store.js';
|
|
2
|
+
export interface ExecutionEvidence {
|
|
3
|
+
input: unknown;
|
|
4
|
+
result: unknown;
|
|
5
|
+
inputHash: string | null;
|
|
6
|
+
resultHash: string | null;
|
|
7
|
+
completeness: 'complete' | 'redacted' | 'oversized' | 'unserializable';
|
|
8
|
+
redactions: string[];
|
|
9
|
+
}
|
|
10
|
+
export declare function safeExperienceSummary(text: string): string;
|
|
11
|
+
/** Preserve comparable execution evidence, never turn an error into an action recipe. */
|
|
12
|
+
export declare function captureExecutionEvidence(input: unknown, result: unknown): ExecutionEvidence;
|
|
13
|
+
export declare function traceReadScope(access: ProcedureAccess): {
|
|
14
|
+
owner_scope: string;
|
|
15
|
+
project_id: string;
|
|
16
|
+
channel_id?: string;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=experience-evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"experience-evidence.d.ts","sourceRoot":"","sources":["../../src/operator/experience-evidence.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM5D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,gBAAgB,CAAC;IACvE,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAeD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED,yFAAyF;AACzF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,iBAAiB,CA4C3F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CASA"}
|