iranti 0.2.51 → 0.3.2
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 +30 -17
- package/dist/scripts/api-key-create.js +1 -1
- package/dist/scripts/api-key-list.js +1 -1
- package/dist/scripts/api-key-revoke.js +1 -1
- package/dist/scripts/claude-code-memory-hook.js +116 -30
- package/dist/scripts/codex-setup.js +86 -4
- package/dist/scripts/iranti-cli.js +1359 -57
- package/dist/scripts/iranti-mcp.js +578 -75
- package/dist/scripts/seed.js +11 -6
- package/dist/scripts/setup.js +1 -1
- package/dist/src/api/healthChecks.d.ts +29 -0
- package/dist/src/api/healthChecks.d.ts.map +1 -0
- package/dist/src/api/healthChecks.js +72 -0
- package/dist/src/api/healthChecks.js.map +1 -0
- package/dist/src/api/middleware/validation.d.ts +22 -0
- package/dist/src/api/middleware/validation.d.ts.map +1 -1
- package/dist/src/api/middleware/validation.js +93 -3
- package/dist/src/api/middleware/validation.js.map +1 -1
- package/dist/src/api/routes/knowledge.d.ts.map +1 -1
- package/dist/src/api/routes/knowledge.js +53 -0
- package/dist/src/api/routes/knowledge.js.map +1 -1
- package/dist/src/api/routes/memory.d.ts.map +1 -1
- package/dist/src/api/routes/memory.js +73 -9
- package/dist/src/api/routes/memory.js.map +1 -1
- package/dist/src/api/server.js +38 -43
- package/dist/src/api/server.js.map +1 -1
- package/dist/src/attendant/AttendantInstance.d.ts +135 -2
- package/dist/src/attendant/AttendantInstance.d.ts.map +1 -1
- package/dist/src/attendant/AttendantInstance.js +1836 -93
- package/dist/src/attendant/AttendantInstance.js.map +1 -1
- package/dist/src/attendant/index.d.ts +1 -1
- package/dist/src/attendant/index.d.ts.map +1 -1
- package/dist/src/attendant/index.js +1 -1
- package/dist/src/attendant/index.js.map +1 -1
- package/dist/src/attendant/registry.d.ts.map +1 -1
- package/dist/src/attendant/registry.js +2 -0
- package/dist/src/attendant/registry.js.map +1 -1
- package/dist/src/chat/index.d.ts +23 -0
- package/dist/src/chat/index.d.ts.map +1 -1
- package/dist/src/chat/index.js +111 -22
- package/dist/src/chat/index.js.map +1 -1
- package/dist/src/generated/prisma/browser.d.ts +5 -0
- package/dist/src/generated/prisma/browser.d.ts.map +1 -1
- package/dist/src/generated/prisma/client.d.ts +5 -0
- package/dist/src/generated/prisma/client.d.ts.map +1 -1
- package/dist/src/generated/prisma/commonInputTypes.d.ts +48 -0
- package/dist/src/generated/prisma/commonInputTypes.d.ts.map +1 -1
- package/dist/src/generated/prisma/internal/class.d.ts +11 -0
- package/dist/src/generated/prisma/internal/class.d.ts.map +1 -1
- package/dist/src/generated/prisma/internal/class.js +4 -4
- package/dist/src/generated/prisma/internal/class.js.map +1 -1
- package/dist/src/generated/prisma/internal/prismaNamespace.d.ts +92 -1
- package/dist/src/generated/prisma/internal/prismaNamespace.d.ts.map +1 -1
- package/dist/src/generated/prisma/internal/prismaNamespace.js +17 -2
- package/dist/src/generated/prisma/internal/prismaNamespace.js.map +1 -1
- package/dist/src/generated/prisma/internal/prismaNamespaceBrowser.d.ts +16 -0
- package/dist/src/generated/prisma/internal/prismaNamespaceBrowser.d.ts.map +1 -1
- package/dist/src/generated/prisma/internal/prismaNamespaceBrowser.js +17 -2
- package/dist/src/generated/prisma/internal/prismaNamespaceBrowser.js.map +1 -1
- package/dist/src/generated/prisma/models/StaffEvent.d.ts +1184 -0
- package/dist/src/generated/prisma/models/StaffEvent.d.ts.map +1 -0
- package/dist/src/generated/prisma/models/StaffEvent.js +3 -0
- package/dist/src/generated/prisma/models/StaffEvent.js.map +1 -0
- package/dist/src/generated/prisma/models.d.ts +1 -0
- package/dist/src/generated/prisma/models.d.ts.map +1 -1
- package/dist/src/lib/assistantCheckpoint.d.ts +21 -0
- package/dist/src/lib/assistantCheckpoint.d.ts.map +1 -0
- package/dist/src/lib/assistantCheckpoint.js +143 -0
- package/dist/src/lib/assistantCheckpoint.js.map +1 -0
- package/dist/src/lib/autoRemember.d.ts +15 -0
- package/dist/src/lib/autoRemember.d.ts.map +1 -1
- package/dist/src/lib/autoRemember.js +433 -71
- package/dist/src/lib/autoRemember.js.map +1 -1
- package/dist/src/lib/cliHelpCatalog.d.ts.map +1 -1
- package/dist/src/lib/cliHelpCatalog.js +23 -11
- package/dist/src/lib/cliHelpCatalog.js.map +1 -1
- package/dist/src/lib/cliHelpRenderer.d.ts +1 -0
- package/dist/src/lib/cliHelpRenderer.d.ts.map +1 -1
- package/dist/src/lib/cliHelpRenderer.js +4 -0
- package/dist/src/lib/cliHelpRenderer.js.map +1 -1
- package/dist/src/lib/commandErrors.d.ts +5 -1
- package/dist/src/lib/commandErrors.d.ts.map +1 -1
- package/dist/src/lib/commandErrors.js +250 -17
- package/dist/src/lib/commandErrors.js.map +1 -1
- package/dist/src/lib/createFirstPartyIranti.d.ts.map +1 -1
- package/dist/src/lib/createFirstPartyIranti.js +1 -0
- package/dist/src/lib/createFirstPartyIranti.js.map +1 -1
- package/dist/src/lib/dbStaffEventEmitter.d.ts +2 -0
- package/dist/src/lib/dbStaffEventEmitter.d.ts.map +1 -1
- package/dist/src/lib/dbStaffEventEmitter.js +15 -0
- package/dist/src/lib/dbStaffEventEmitter.js.map +1 -1
- package/dist/src/lib/hostMemoryFormatting.d.ts +25 -0
- package/dist/src/lib/hostMemoryFormatting.d.ts.map +1 -0
- package/dist/src/lib/hostMemoryFormatting.js +55 -0
- package/dist/src/lib/hostMemoryFormatting.js.map +1 -0
- package/dist/src/lib/issueFacts.d.ts +37 -0
- package/dist/src/lib/issueFacts.d.ts.map +1 -0
- package/dist/src/lib/issueFacts.js +72 -0
- package/dist/src/lib/issueFacts.js.map +1 -0
- package/dist/src/lib/llm.d.ts +8 -0
- package/dist/src/lib/llm.d.ts.map +1 -1
- package/dist/src/lib/llm.js +33 -0
- package/dist/src/lib/llm.js.map +1 -1
- package/dist/src/lib/packageRoot.d.ts +2 -0
- package/dist/src/lib/packageRoot.d.ts.map +1 -0
- package/dist/src/lib/packageRoot.js +22 -0
- package/dist/src/lib/packageRoot.js.map +1 -0
- package/dist/src/lib/projectLearning.d.ts +21 -0
- package/dist/src/lib/projectLearning.d.ts.map +1 -0
- package/dist/src/lib/projectLearning.js +357 -0
- package/dist/src/lib/projectLearning.js.map +1 -0
- package/dist/src/lib/protocolEnforcement.d.ts +29 -0
- package/dist/src/lib/protocolEnforcement.d.ts.map +1 -0
- package/dist/src/lib/protocolEnforcement.js +124 -0
- package/dist/src/lib/protocolEnforcement.js.map +1 -0
- package/dist/src/lib/providers/claude.js +1 -1
- package/dist/src/lib/providers/claude.js.map +1 -1
- package/dist/src/lib/router.js +1 -1
- package/dist/src/lib/router.js.map +1 -1
- package/dist/src/lib/runtimeEnv.d.ts.map +1 -1
- package/dist/src/lib/runtimeEnv.js +8 -3
- package/dist/src/lib/runtimeEnv.js.map +1 -1
- package/dist/src/lib/scaffoldCloseout.d.ts +27 -0
- package/dist/src/lib/scaffoldCloseout.d.ts.map +1 -0
- package/dist/src/lib/scaffoldCloseout.js +139 -0
- package/dist/src/lib/scaffoldCloseout.js.map +1 -0
- package/dist/src/lib/semanticFactTags.d.ts +10 -0
- package/dist/src/lib/semanticFactTags.d.ts.map +1 -0
- package/dist/src/lib/semanticFactTags.js +166 -0
- package/dist/src/lib/semanticFactTags.js.map +1 -0
- package/dist/src/lib/sessionLedger.d.ts +94 -0
- package/dist/src/lib/sessionLedger.d.ts.map +1 -0
- package/dist/src/lib/sessionLedger.js +997 -0
- package/dist/src/lib/sessionLedger.js.map +1 -0
- package/dist/src/lib/sharedStateInvalidation.d.ts +10 -0
- package/dist/src/lib/sharedStateInvalidation.d.ts.map +1 -0
- package/dist/src/lib/sharedStateInvalidation.js +184 -0
- package/dist/src/lib/sharedStateInvalidation.js.map +1 -0
- package/dist/src/lib/staffEventsTable.d.ts +3 -0
- package/dist/src/lib/staffEventsTable.d.ts.map +1 -0
- package/dist/src/lib/staffEventsTable.js +58 -0
- package/dist/src/lib/staffEventsTable.js.map +1 -0
- package/dist/src/librarian/index.d.ts.map +1 -1
- package/dist/src/librarian/index.js +113 -2
- package/dist/src/librarian/index.js.map +1 -1
- package/dist/src/library/client.d.ts +6 -1
- package/dist/src/library/client.d.ts.map +1 -1
- package/dist/src/library/client.js +21 -7
- package/dist/src/library/client.js.map +1 -1
- package/dist/src/library/embeddings.d.ts +9 -1
- package/dist/src/library/embeddings.d.ts.map +1 -1
- package/dist/src/library/embeddings.js +28 -3
- package/dist/src/library/embeddings.js.map +1 -1
- package/dist/src/library/queries.d.ts.map +1 -1
- package/dist/src/library/queries.js +263 -46
- package/dist/src/library/queries.js.map +1 -1
- package/dist/src/sdk/index.d.ts +52 -1
- package/dist/src/sdk/index.d.ts.map +1 -1
- package/dist/src/sdk/index.js +546 -98
- package/dist/src/sdk/index.js.map +1 -1
- package/package.json +24 -3
- package/prisma/migrations/20260331101500_add_staff_events_ledger/migration.sql +24 -0
- package/prisma/schema.prisma +22 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AgentProtocolTracker = exports.ProtocolViolationError = void 0;
|
|
4
|
+
class ProtocolViolationError extends Error {
|
|
5
|
+
constructor(protocolViolation) {
|
|
6
|
+
super(protocolViolation.message);
|
|
7
|
+
this.name = 'ProtocolViolationError';
|
|
8
|
+
this.protocolViolation = protocolViolation;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ProtocolViolationError = ProtocolViolationError;
|
|
12
|
+
class AgentProtocolTracker {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.state = new Map();
|
|
15
|
+
}
|
|
16
|
+
markHandshake(agentId) {
|
|
17
|
+
const current = this.state.get(agentId) ?? { discoveryBudget: 0, pendingPostResponse: false, pendingMemoryUseAck: false };
|
|
18
|
+
this.state.set(agentId, {
|
|
19
|
+
...current,
|
|
20
|
+
lastHandshakeAt: Date.now(),
|
|
21
|
+
discoveryBudget: 0,
|
|
22
|
+
pendingPostResponse: false,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
markAttend(agentId, phase) {
|
|
26
|
+
const current = this.state.get(agentId) ?? { discoveryBudget: 0, pendingPostResponse: false, pendingMemoryUseAck: false };
|
|
27
|
+
const lastAttendAt = Date.now();
|
|
28
|
+
let discoveryBudget = current.discoveryBudget;
|
|
29
|
+
let pendingPostResponse = current.pendingPostResponse;
|
|
30
|
+
if (phase === 'pre-response') {
|
|
31
|
+
discoveryBudget = 1;
|
|
32
|
+
pendingPostResponse = true;
|
|
33
|
+
}
|
|
34
|
+
else if (phase === 'post-response') {
|
|
35
|
+
discoveryBudget = 0;
|
|
36
|
+
pendingPostResponse = false;
|
|
37
|
+
}
|
|
38
|
+
else if (phase === 'mid-turn') {
|
|
39
|
+
discoveryBudget = 1;
|
|
40
|
+
}
|
|
41
|
+
this.state.set(agentId, {
|
|
42
|
+
...current,
|
|
43
|
+
lastAttendAt,
|
|
44
|
+
lastAttendPhase: phase,
|
|
45
|
+
discoveryBudget,
|
|
46
|
+
pendingPostResponse,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
markMemoryUseAcknowledgementRequired(agentId) {
|
|
50
|
+
const current = this.state.get(agentId) ?? { discoveryBudget: 0, pendingPostResponse: false, pendingMemoryUseAck: false };
|
|
51
|
+
this.state.set(agentId, {
|
|
52
|
+
...current,
|
|
53
|
+
discoveryBudget: 0,
|
|
54
|
+
pendingMemoryUseAck: true,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
clearMemoryUseAcknowledgementRequired(agentId) {
|
|
58
|
+
const current = this.state.get(agentId);
|
|
59
|
+
if (!current)
|
|
60
|
+
return;
|
|
61
|
+
this.state.set(agentId, {
|
|
62
|
+
...current,
|
|
63
|
+
pendingMemoryUseAck: false,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
notifyDiscoveryConsumed(agentId) {
|
|
67
|
+
const current = this.state.get(agentId);
|
|
68
|
+
if (!current)
|
|
69
|
+
return;
|
|
70
|
+
this.state.set(agentId, {
|
|
71
|
+
...current,
|
|
72
|
+
discoveryBudget: Math.max(0, current.discoveryBudget - 1),
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
clearAgent(agentId) {
|
|
76
|
+
this.state.delete(agentId);
|
|
77
|
+
}
|
|
78
|
+
check(agentId, operation, requirements) {
|
|
79
|
+
const current = this.state.get(agentId);
|
|
80
|
+
if (requirements.handshake && !current?.lastHandshakeAt) {
|
|
81
|
+
return {
|
|
82
|
+
code: 'handshake_required',
|
|
83
|
+
agentId,
|
|
84
|
+
operation,
|
|
85
|
+
message: `Protocol violation: ${operation} is blocked for agent ${agentId} until iranti_handshake runs for the current session.`,
|
|
86
|
+
requiredAction: 'Call iranti_handshake for this agent, then call iranti_attend before discovery if the operation is a read/search traversal tool.',
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
if (requirements.postResponse && current?.pendingPostResponse) {
|
|
90
|
+
return {
|
|
91
|
+
code: 'post_response_required',
|
|
92
|
+
agentId,
|
|
93
|
+
operation,
|
|
94
|
+
message: `Protocol violation: ${operation} is blocked for agent ${agentId} until the previous turn is closed with iranti_attend(phase='post-response').`,
|
|
95
|
+
requiredAction: 'Call iranti_attend(phase=\'post-response\') to close the previous turn, persist any durable findings with iranti_write or iranti_checkpoint, then begin the next turn with iranti_attend(phase=\'pre-response\').',
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (current?.pendingMemoryUseAck && operation !== 'attend') {
|
|
99
|
+
return {
|
|
100
|
+
code: 'memory_use_required',
|
|
101
|
+
agentId,
|
|
102
|
+
operation,
|
|
103
|
+
message: `Protocol violation: ${operation} is blocked for agent ${agentId} until the host explains why previously injected memory was insufficient via iranti_write or iranti_checkpoint.`,
|
|
104
|
+
requiredAction: 'Persist why the injected memory was insufficient with iranti_write or iranti_checkpoint before performing more rediscovery on this task.',
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (requirements.attend) {
|
|
108
|
+
const handshakeFresh = current?.lastHandshakeAt && (!current.lastAttendAt || current.lastAttendAt < current.lastHandshakeAt);
|
|
109
|
+
const missingBudget = !current || current.discoveryBudget <= 0;
|
|
110
|
+
if (handshakeFresh || missingBudget) {
|
|
111
|
+
return {
|
|
112
|
+
code: 'attend_required',
|
|
113
|
+
agentId,
|
|
114
|
+
operation,
|
|
115
|
+
message: `Protocol violation: ${operation} is blocked for agent ${agentId} until iranti_attend is called for this turn.`,
|
|
116
|
+
requiredAction: 'Call iranti_attend(phase=\'pre-response\') immediately before this discovery step. After the response, call iranti_attend(phase=\'post-response\') and persist durable findings with iranti_write or iranti_checkpoint.',
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.AgentProtocolTracker = AgentProtocolTracker;
|
|
124
|
+
//# sourceMappingURL=protocolEnforcement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocolEnforcement.js","sourceRoot":"","sources":["../../../src/lib/protocolEnforcement.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ class ClaudeProvider {
|
|
|
11
11
|
if (!apiKey) {
|
|
12
12
|
throw new Error('ANTHROPIC_API_KEY is not set');
|
|
13
13
|
}
|
|
14
|
-
this.model = process.env.ANTHROPIC_MODEL ?? 'claude-sonnet-4';
|
|
14
|
+
this.model = process.env.ANTHROPIC_MODEL ?? 'claude-sonnet-4-6';
|
|
15
15
|
const baseURL = process.env.ANTHROPIC_BASE_URL?.trim();
|
|
16
16
|
this.client = new sdk_1.default({
|
|
17
17
|
apiKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/lib/providers/claude.ts"],"names":[],"mappings":";;;;;AAAA,gCAA6G;AAC7G,4DAA0C;AAE1C,MAAM,cAAc;IAIhB;QACI,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/lib/providers/claude.ts"],"names":[],"mappings":";;;;;AAAA,gCAA6G;AAC7G,4DAA0C;AAE1C,MAAM,cAAc;IAIhB;QACI,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,mBAAmB,CAAC;QAChE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,aAAS,CAAC;YACxB,MAAM;YACN,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAsB,EAAE,OAAyB;QAC5D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;QAC3C,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;QAC7C,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;SAC3B,CAAC,CAAC,CAAC;QAEJ,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACD,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACzC,KAAK;gBACL,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,cAAc;aAC3B,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAA,kCAA4B,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO;aACxB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;aACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACxB,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAC;QAEZ,OAAO;YACH,IAAI;YACJ,KAAK;YACL,QAAQ,EAAE,QAAQ;SACrB,CAAC;IACN,CAAC;CACJ;AAED,kBAAe,IAAI,cAAc,EAAE,CAAC"}
|
package/dist/src/lib/router.js
CHANGED
|
@@ -18,7 +18,7 @@ function defaultModelForProvider(taskType, provider) {
|
|
|
18
18
|
case 'ollama':
|
|
19
19
|
return 'llama3.2';
|
|
20
20
|
case 'claude':
|
|
21
|
-
return taskType === 'conflict_resolution' ? 'claude-sonnet-4' : 'claude-
|
|
21
|
+
return taskType === 'conflict_resolution' ? 'claude-sonnet-4-6' : 'claude-haiku-4-5-20251001';
|
|
22
22
|
case 'mock':
|
|
23
23
|
return 'mock';
|
|
24
24
|
case 'gemini':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/lib/router.ts"],"names":[],"mappings":";;AA8GA,sBAsBC;AAID,0CAEC;AAED,wCAEC;AA9ID,+BAAsE;AAoBtE,SAAS,iBAAiB;IACtB,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC;AAC9C,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAkB,EAAE,QAAgB;IACjE,QAAQ,QAAQ,EAAE,CAAC;QACf,KAAK,QAAQ;YACT,OAAO,QAAQ,KAAK,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;QACvE,KAAK,MAAM;YACP,OAAO,2CAA2C,CAAC;QACvD,KAAK,SAAS;YACV,OAAO,sBAAsB,CAAC;QAClC,KAAK,QAAQ;YACT,OAAO,UAAU,CAAC;QACtB,KAAK,QAAQ;YACT,OAAO,QAAQ,KAAK,qBAAqB,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/lib/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeEnv.d.ts","sourceRoot":"","sources":["../../../src/lib/runtimeEnv.ts"],"names":[],"mappings":"AAIA,KAAK,iBAAiB,GAAG;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,kBAAkB,GAAG,wBAAwB,GAAG,cAAc,CAAC;CACjF,CAAC;
|
|
1
|
+
{"version":3,"file":"runtimeEnv.d.ts","sourceRoot":"","sources":["../../../src/lib/runtimeEnv.ts"],"names":[],"mappings":"AAIA,KAAK,iBAAiB,GAAG;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,kBAAkB,GAAG,wBAAwB,GAAG,cAAc,CAAC;CACjF,CAAC;AA8FF,wBAAgB,cAAc,CAAC,OAAO,GAAE,iBAAsB,GAAG,oBAAoB,CAgDpF"}
|
|
@@ -60,12 +60,17 @@ function walkAncestorCandidates(startDir, relativePath) {
|
|
|
60
60
|
}
|
|
61
61
|
function findProjectEnvFile(options) {
|
|
62
62
|
const explicit = options.projectEnvFile?.trim() || process.env.IRANTI_PROJECT_ENV?.trim();
|
|
63
|
-
if (explicit
|
|
64
|
-
|
|
63
|
+
if (explicit) {
|
|
64
|
+
if (fs_1.default.existsSync(explicit))
|
|
65
|
+
return path_1.default.resolve(explicit);
|
|
66
|
+
throw new Error(`Project env file not found: ${path_1.default.resolve(explicit)}\n` +
|
|
67
|
+
`Check your --project-env path or IRANTI_PROJECT_ENV environment variable.`);
|
|
68
|
+
}
|
|
69
|
+
const ambientProcessCwd = options.payloadCwd || options.cwd ? [] : walkAncestorCandidates(process.cwd(), '.env.iranti');
|
|
65
70
|
const candidates = dedupePaths([
|
|
66
71
|
...walkAncestorCandidates(options.payloadCwd, '.env.iranti'),
|
|
67
72
|
...walkAncestorCandidates(options.cwd, '.env.iranti'),
|
|
68
|
-
...
|
|
73
|
+
...ambientProcessCwd,
|
|
69
74
|
]);
|
|
70
75
|
return candidates.find((candidate) => fs_1.default.existsSync(candidate));
|
|
71
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtimeEnv.js","sourceRoot":"","sources":["../../../src/lib/runtimeEnv.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"runtimeEnv.js","sourceRoot":"","sources":["../../../src/lib/runtimeEnv.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type ScaffoldCloseoutStatus = {
|
|
2
|
+
status: 'written';
|
|
3
|
+
detail: string;
|
|
4
|
+
entity: string;
|
|
5
|
+
key: string;
|
|
6
|
+
sessionId: string | null;
|
|
7
|
+
} | {
|
|
8
|
+
status: 'skipped' | 'failed';
|
|
9
|
+
detail: string;
|
|
10
|
+
entity: null;
|
|
11
|
+
key: null;
|
|
12
|
+
sessionId: null;
|
|
13
|
+
};
|
|
14
|
+
export type ScaffoldCloseoutFile = {
|
|
15
|
+
path: string;
|
|
16
|
+
status: 'created' | 'updated' | 'unchanged';
|
|
17
|
+
};
|
|
18
|
+
type ScaffoldCloseoutInput = {
|
|
19
|
+
tool: 'claude' | 'codex';
|
|
20
|
+
projectPath: string;
|
|
21
|
+
projectEnvFile?: string | null;
|
|
22
|
+
files: ScaffoldCloseoutFile[];
|
|
23
|
+
agentId?: string;
|
|
24
|
+
};
|
|
25
|
+
export declare function writeProjectScaffoldCloseout(input: ScaffoldCloseoutInput): Promise<ScaffoldCloseoutStatus>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=scaffoldCloseout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffoldCloseout.d.ts","sourceRoot":"","sources":["../../../src/lib/scaffoldCloseout.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,sBAAsB,GAC5B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAAE,GAC7F;IAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;CAAE,CAAC;AAElG,MAAM,MAAM,oBAAoB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;CAC/C,CAAC;AAEF,KAAK,qBAAqB,GAAG;IACzB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAqCF,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAiGhH"}
|
|
@@ -0,0 +1,139 @@
|
|
|
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.writeProjectScaffoldCloseout = writeProjectScaffoldCloseout;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const client_1 = require("../library/client");
|
|
11
|
+
const createFirstPartyIranti_1 = require("./createFirstPartyIranti");
|
|
12
|
+
const semanticFactTags_1 = require("./semanticFactTags");
|
|
13
|
+
async function readEnvFile(filePath) {
|
|
14
|
+
const out = {};
|
|
15
|
+
const raw = await promises_1.default.readFile(filePath, 'utf8');
|
|
16
|
+
for (const line of raw.split(/\r?\n/)) {
|
|
17
|
+
const trimmed = line.trim();
|
|
18
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
19
|
+
continue;
|
|
20
|
+
const idx = trimmed.indexOf('=');
|
|
21
|
+
if (idx <= 0)
|
|
22
|
+
continue;
|
|
23
|
+
const key = trimmed.slice(0, idx).trim();
|
|
24
|
+
const valueRaw = trimmed.slice(idx + 1).trim();
|
|
25
|
+
out[key] =
|
|
26
|
+
(valueRaw.startsWith('"') && valueRaw.endsWith('"'))
|
|
27
|
+
|| (valueRaw.startsWith("'") && valueRaw.endsWith("'"))
|
|
28
|
+
? valueRaw.slice(1, -1)
|
|
29
|
+
: valueRaw;
|
|
30
|
+
}
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
function toolDisplayName(tool) {
|
|
34
|
+
return tool === 'claude' ? 'Claude' : 'Codex';
|
|
35
|
+
}
|
|
36
|
+
function closeoutKey(tool) {
|
|
37
|
+
return tool === 'claude'
|
|
38
|
+
? 'claude_setup_scaffold_status'
|
|
39
|
+
: 'codex_setup_scaffold_status';
|
|
40
|
+
}
|
|
41
|
+
function closeoutSource(tool) {
|
|
42
|
+
return tool === 'claude'
|
|
43
|
+
? 'ClaudeSetupScaffold'
|
|
44
|
+
: 'CodexSetupScaffold';
|
|
45
|
+
}
|
|
46
|
+
async function writeProjectScaffoldCloseout(input) {
|
|
47
|
+
const projectEnvFile = input.projectEnvFile?.trim();
|
|
48
|
+
if (!projectEnvFile) {
|
|
49
|
+
return { status: 'skipped', detail: 'no project binding available', entity: null, key: null, sessionId: null };
|
|
50
|
+
}
|
|
51
|
+
if (!node_fs_1.default.existsSync(projectEnvFile)) {
|
|
52
|
+
return { status: 'skipped', detail: 'project binding file not found', entity: null, key: null, sessionId: null };
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const binding = await readEnvFile(projectEnvFile);
|
|
56
|
+
const entity = binding.IRANTI_MEMORY_ENTITY?.trim();
|
|
57
|
+
if (!entity) {
|
|
58
|
+
return { status: 'skipped', detail: 'binding is missing IRANTI_MEMORY_ENTITY', entity: null, key: null, sessionId: null };
|
|
59
|
+
}
|
|
60
|
+
const instanceEnvFile = binding.IRANTI_INSTANCE_ENV?.trim();
|
|
61
|
+
if (!instanceEnvFile) {
|
|
62
|
+
return { status: 'skipped', detail: 'binding is missing IRANTI_INSTANCE_ENV', entity: null, key: null, sessionId: null };
|
|
63
|
+
}
|
|
64
|
+
if (!node_fs_1.default.existsSync(instanceEnvFile)) {
|
|
65
|
+
return { status: 'skipped', detail: 'instance env file not found', entity: null, key: null, sessionId: null };
|
|
66
|
+
}
|
|
67
|
+
const instanceEnv = await readEnvFile(instanceEnvFile);
|
|
68
|
+
const connectionString = instanceEnv.DATABASE_URL?.trim();
|
|
69
|
+
if (!connectionString) {
|
|
70
|
+
return { status: 'skipped', detail: 'instance env is missing DATABASE_URL', entity: null, key: null, sessionId: null };
|
|
71
|
+
}
|
|
72
|
+
const toolName = toolDisplayName(input.tool);
|
|
73
|
+
const key = closeoutKey(input.tool);
|
|
74
|
+
const source = closeoutSource(input.tool);
|
|
75
|
+
const projectLabel = node_path_1.default.basename(node_path_1.default.resolve(input.projectPath));
|
|
76
|
+
const fileOutputs = input.files.map((file) => `${node_path_1.default.basename(file.path)}:${file.status}`);
|
|
77
|
+
const iranti = (0, createFirstPartyIranti_1.createFirstPartyIranti)({
|
|
78
|
+
connectionString,
|
|
79
|
+
llmProvider: instanceEnv.LLM_PROVIDER,
|
|
80
|
+
sessionLedgerSource: 'cli',
|
|
81
|
+
sessionLedgerHost: 'plain_cli',
|
|
82
|
+
sessionLedgerAgentId: input.agentId ?? 'iranti_cli_scaffold',
|
|
83
|
+
});
|
|
84
|
+
await iranti.write({
|
|
85
|
+
entity,
|
|
86
|
+
key,
|
|
87
|
+
value: {
|
|
88
|
+
tool: `${input.tool}-setup`,
|
|
89
|
+
projectPath: node_path_1.default.resolve(input.projectPath),
|
|
90
|
+
projectEnvFile,
|
|
91
|
+
files: input.files,
|
|
92
|
+
updatedAt: new Date().toISOString(),
|
|
93
|
+
},
|
|
94
|
+
summary: `${toolName} setup scaffold updated integration files for ${projectLabel}.`,
|
|
95
|
+
confidence: 95,
|
|
96
|
+
source,
|
|
97
|
+
agent: input.agentId ?? 'iranti_cli_scaffold',
|
|
98
|
+
properties: {
|
|
99
|
+
memoryScope: 'project',
|
|
100
|
+
capturePhase: 'manual',
|
|
101
|
+
durableClass: 'scaffold_status',
|
|
102
|
+
canonicalKey: key,
|
|
103
|
+
mergeStrategy: 'replace',
|
|
104
|
+
...(0, semanticFactTags_1.buildSemanticFactTags)({
|
|
105
|
+
memoryScope: 'project',
|
|
106
|
+
durableClass: 'scaffold_status',
|
|
107
|
+
mergeStrategy: 'replace',
|
|
108
|
+
extraTags: ['integration', input.tool, 'scaffold'],
|
|
109
|
+
}),
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
const brief = await iranti.checkpoint({
|
|
113
|
+
agentId: input.agentId ?? 'iranti_cli_scaffold',
|
|
114
|
+
task: `${toolName} setup scaffold for ${projectLabel}`,
|
|
115
|
+
recentMessages: [`Scaffold ${toolName} integration files for ${projectLabel}.`],
|
|
116
|
+
checkpoint: {
|
|
117
|
+
currentStep: `${toolName} setup scaffolded MCP and host protocol files for ${projectLabel}.`,
|
|
118
|
+
nextStep: `Open ${projectLabel} in ${toolName} and verify Iranti tools are available before real work starts.`,
|
|
119
|
+
recentOutputs: fileOutputs,
|
|
120
|
+
entityTargets: [entity],
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
return {
|
|
124
|
+
status: 'written',
|
|
125
|
+
detail: `shared closeout written to ${entity}/${key}`,
|
|
126
|
+
entity,
|
|
127
|
+
key,
|
|
128
|
+
sessionId: brief.sessionCheckpoint?.sessionId ?? null,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
133
|
+
return { status: 'failed', detail: message, entity: null, key: null, sessionId: null };
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
await (0, client_1.disconnectDb)().catch(() => undefined);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=scaffoldCloseout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffoldCloseout.js","sourceRoot":"","sources":["../../../src/lib/scaffoldCloseout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type SemanticMemoryScope = 'personal' | 'project';
|
|
2
|
+
type MergeStrategy = 'replace' | 'append_dedupe';
|
|
3
|
+
export declare function buildSemanticFactTags(input: {
|
|
4
|
+
memoryScope: SemanticMemoryScope;
|
|
5
|
+
durableClass: string;
|
|
6
|
+
mergeStrategy: MergeStrategy;
|
|
7
|
+
extraTags?: string[];
|
|
8
|
+
}): Record<string, unknown>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=semanticFactTags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semanticFactTags.d.ts","sourceRoot":"","sources":["../../../src/lib/semanticFactTags.ts"],"names":[],"mappings":"AAAA,KAAK,mBAAmB,GAAG,UAAU,GAAG,SAAS,CAAC;AAClD,KAAK,aAAa,GAAG,SAAS,GAAG,eAAe,CAAC;AA+JjD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IACzC,WAAW,EAAE,mBAAmB,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAY1B"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildSemanticFactTags = buildSemanticFactTags;
|
|
4
|
+
function dedupeTags(tags) {
|
|
5
|
+
const seen = new Set();
|
|
6
|
+
const deduped = [];
|
|
7
|
+
for (const tag of tags) {
|
|
8
|
+
const trimmed = tag.trim().toLowerCase();
|
|
9
|
+
if (!trimmed || seen.has(trimmed))
|
|
10
|
+
continue;
|
|
11
|
+
seen.add(trimmed);
|
|
12
|
+
deduped.push(trimmed);
|
|
13
|
+
}
|
|
14
|
+
return deduped;
|
|
15
|
+
}
|
|
16
|
+
function deriveSemanticProfile(memoryScope, durableClass) {
|
|
17
|
+
switch (durableClass) {
|
|
18
|
+
case 'preference':
|
|
19
|
+
return {
|
|
20
|
+
semanticDomain: 'personal',
|
|
21
|
+
semanticIntent: 'preference_capture',
|
|
22
|
+
temporalScope: 'long_term',
|
|
23
|
+
semanticTags: ['personal_memory', 'preference', 'identity'],
|
|
24
|
+
};
|
|
25
|
+
case 'profile':
|
|
26
|
+
return {
|
|
27
|
+
semanticDomain: 'personal',
|
|
28
|
+
semanticIntent: 'profile_capture',
|
|
29
|
+
temporalScope: 'long_term',
|
|
30
|
+
semanticTags: ['personal_memory', 'profile', 'identity'],
|
|
31
|
+
};
|
|
32
|
+
case 'decision':
|
|
33
|
+
return {
|
|
34
|
+
semanticDomain: 'planning',
|
|
35
|
+
semanticIntent: 'decision_capture',
|
|
36
|
+
temporalScope: 'project_durable',
|
|
37
|
+
semanticTags: ['project_memory', 'decision', 'planning'],
|
|
38
|
+
};
|
|
39
|
+
case 'next_step':
|
|
40
|
+
return {
|
|
41
|
+
semanticDomain: 'planning',
|
|
42
|
+
semanticIntent: 'task_state_tracking',
|
|
43
|
+
temporalScope: 'active_work',
|
|
44
|
+
semanticTags: ['project_memory', 'next_step', 'planning', 'actionable'],
|
|
45
|
+
};
|
|
46
|
+
case 'current_step':
|
|
47
|
+
return {
|
|
48
|
+
semanticDomain: 'planning',
|
|
49
|
+
semanticIntent: 'task_state_tracking',
|
|
50
|
+
temporalScope: 'active_work',
|
|
51
|
+
semanticTags: ['project_memory', 'current_step', 'planning', 'status'],
|
|
52
|
+
};
|
|
53
|
+
case 'blocker':
|
|
54
|
+
return {
|
|
55
|
+
semanticDomain: 'risk',
|
|
56
|
+
semanticIntent: 'risk_tracking',
|
|
57
|
+
temporalScope: 'active_work',
|
|
58
|
+
semanticTags: ['project_memory', 'blocker', 'risk', 'blocking'],
|
|
59
|
+
};
|
|
60
|
+
case 'owner':
|
|
61
|
+
return {
|
|
62
|
+
semanticDomain: 'coordination',
|
|
63
|
+
semanticIntent: 'owner_tracking',
|
|
64
|
+
temporalScope: 'active_work',
|
|
65
|
+
semanticTags: ['project_memory', 'ownership', 'coordination'],
|
|
66
|
+
};
|
|
67
|
+
case 'open_risks':
|
|
68
|
+
return {
|
|
69
|
+
semanticDomain: 'risk',
|
|
70
|
+
semanticIntent: 'risk_tracking',
|
|
71
|
+
temporalScope: 'active_work',
|
|
72
|
+
semanticTags: ['project_memory', 'risk', 'tracking', 'list_fact'],
|
|
73
|
+
};
|
|
74
|
+
case 'artifact':
|
|
75
|
+
return {
|
|
76
|
+
semanticDomain: 'artifact',
|
|
77
|
+
semanticIntent: 'artifact_tracking',
|
|
78
|
+
temporalScope: 'project_durable',
|
|
79
|
+
semanticTags: ['project_memory', 'artifact', 'reference', 'list_fact'],
|
|
80
|
+
};
|
|
81
|
+
case 'file_change':
|
|
82
|
+
return {
|
|
83
|
+
semanticDomain: 'artifact',
|
|
84
|
+
semanticIntent: 'change_tracking',
|
|
85
|
+
temporalScope: 'active_work',
|
|
86
|
+
semanticTags: ['project_memory', 'artifact', 'file_change', 'tracking', 'list_fact'],
|
|
87
|
+
};
|
|
88
|
+
case 'action_log':
|
|
89
|
+
return {
|
|
90
|
+
semanticDomain: 'execution',
|
|
91
|
+
semanticIntent: 'activity_tracking',
|
|
92
|
+
temporalScope: 'active_work',
|
|
93
|
+
semanticTags: ['project_memory', 'activity', 'execution', 'tracking', 'list_fact'],
|
|
94
|
+
};
|
|
95
|
+
case 'issue_status':
|
|
96
|
+
return {
|
|
97
|
+
semanticDomain: 'issue_tracking',
|
|
98
|
+
semanticIntent: 'issue_status_tracking',
|
|
99
|
+
temporalScope: 'project_durable',
|
|
100
|
+
semanticTags: ['project_memory', 'issue', 'status', 'tracking'],
|
|
101
|
+
};
|
|
102
|
+
case 'failed_path':
|
|
103
|
+
return {
|
|
104
|
+
semanticDomain: 'execution',
|
|
105
|
+
semanticIntent: 'execution_learning',
|
|
106
|
+
temporalScope: 'active_work',
|
|
107
|
+
semanticTags: ['project_memory', 'failure', 'execution_learning', 'list_fact'],
|
|
108
|
+
};
|
|
109
|
+
case 'alternative_route':
|
|
110
|
+
return {
|
|
111
|
+
semanticDomain: 'execution',
|
|
112
|
+
semanticIntent: 'execution_learning',
|
|
113
|
+
temporalScope: 'active_work',
|
|
114
|
+
semanticTags: ['project_memory', 'recovery', 'execution_learning', 'list_fact'],
|
|
115
|
+
};
|
|
116
|
+
case 'checkpoint_summary':
|
|
117
|
+
return {
|
|
118
|
+
semanticDomain: 'coordination',
|
|
119
|
+
semanticIntent: 'checkpoint_handoff',
|
|
120
|
+
temporalScope: 'active_work',
|
|
121
|
+
semanticTags: ['project_memory', 'checkpoint', 'summary', 'recovery'],
|
|
122
|
+
};
|
|
123
|
+
case 'scaffold_status':
|
|
124
|
+
return {
|
|
125
|
+
semanticDomain: 'integration',
|
|
126
|
+
semanticIntent: 'integration_state_tracking',
|
|
127
|
+
temporalScope: 'project_durable',
|
|
128
|
+
semanticTags: ['project_memory', 'integration', 'scaffold', 'status'],
|
|
129
|
+
};
|
|
130
|
+
case 'handoff_status':
|
|
131
|
+
return {
|
|
132
|
+
semanticDomain: 'coordination',
|
|
133
|
+
semanticIntent: 'handoff_tracking',
|
|
134
|
+
temporalScope: 'active_work',
|
|
135
|
+
semanticTags: ['project_memory', 'handoff', 'status', 'coordination'],
|
|
136
|
+
};
|
|
137
|
+
case 'handoff_task':
|
|
138
|
+
return {
|
|
139
|
+
semanticDomain: 'coordination',
|
|
140
|
+
semanticIntent: 'handoff_tracking',
|
|
141
|
+
temporalScope: 'active_work',
|
|
142
|
+
semanticTags: ['project_memory', 'handoff', 'task_reference', 'coordination'],
|
|
143
|
+
};
|
|
144
|
+
default:
|
|
145
|
+
return {
|
|
146
|
+
semanticDomain: memoryScope === 'personal' ? 'personal' : 'project',
|
|
147
|
+
semanticIntent: 'fact_capture',
|
|
148
|
+
temporalScope: memoryScope === 'personal' ? 'long_term' : 'active_work',
|
|
149
|
+
semanticTags: [memoryScope === 'personal' ? 'personal_memory' : 'project_memory'],
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function buildSemanticFactTags(input) {
|
|
154
|
+
const profile = deriveSemanticProfile(input.memoryScope, input.durableClass);
|
|
155
|
+
return {
|
|
156
|
+
semanticDomain: profile.semanticDomain,
|
|
157
|
+
semanticIntent: profile.semanticIntent,
|
|
158
|
+
temporalScope: profile.temporalScope,
|
|
159
|
+
semanticTags: dedupeTags([
|
|
160
|
+
...profile.semanticTags,
|
|
161
|
+
...(input.extraTags ?? []),
|
|
162
|
+
input.mergeStrategy === 'append_dedupe' ? 'list_fact' : 'singleton_fact',
|
|
163
|
+
]),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=semanticFactTags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semanticFactTags.js","sourceRoot":"","sources":["../../../src/lib/semanticFactTags.ts"],"names":[],"mappings":"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"}
|