@superblocksteam/vite-plugin-file-sync 2.0.110-next.0 → 2.0.110-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-service/agent/prompts/api-prompts.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/api-prompts.js +28 -8
- package/dist/ai-service/agent/prompts/api-prompts.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.d.ts +1 -1
- package/dist/ai-service/app-interface/file-system-interface.d.ts +2 -2
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +20 -0
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/features.d.ts +4 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +4 -0
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/llm/client.d.ts +11 -0
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +16 -2
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts +13 -0
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/token-tracker.js +15 -0
- package/dist/ai-service/llm/context-v2/token-tracker.js.map +1 -1
- package/dist/ai-service/llm/impl/anthropic.d.ts.map +1 -1
- package/dist/ai-service/llm/impl/anthropic.js +6 -3
- package/dist/ai-service/llm/impl/anthropic.js.map +1 -1
- package/dist/ai-service/llm/stream/config.d.ts +15 -1
- package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/config.js +7 -2
- package/dist/ai-service/llm/stream/config.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts +8 -0
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +64 -3
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +33 -13
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +8 -6
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.js +83 -2
- package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +2 -3
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/next-steps.d.ts +15 -0
- package/dist/ai-service/state-machine/handlers/next-steps.d.ts.map +1 -0
- package/dist/ai-service/state-machine/handlers/next-steps.js +85 -0
- package/dist/ai-service/state-machine/handlers/next-steps.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/peer.d.ts +16 -1
- package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.js +23 -2
- package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +7 -1
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/util/llm-config-utils.d.ts +19 -0
- package/dist/ai-service/util/llm-config-utils.d.ts.map +1 -1
- package/dist/ai-service/util/llm-config-utils.js +78 -25
- package/dist/ai-service/util/llm-config-utils.js.map +1 -1
- package/dist/ai-service/util/stop-condition.d.ts +4 -3
- package/dist/ai-service/util/stop-condition.d.ts.map +1 -1
- package/dist/ai-service/util/stop-condition.js +7 -4
- package/dist/ai-service/util/stop-condition.js.map +1 -1
- package/dist/git-log.d.ts +10 -0
- package/dist/git-log.d.ts.map +1 -0
- package/dist/git-log.js +23 -0
- package/dist/git-log.js.map +1 -0
- package/dist/git-service/bitbucket-workflow.d.ts +6 -0
- package/dist/git-service/bitbucket-workflow.d.ts.map +1 -0
- package/dist/git-service/bitbucket-workflow.js +12 -0
- package/dist/git-service/bitbucket-workflow.js.map +1 -0
- package/dist/git-service/index.js +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +12 -17
- package/dist/socket-manager.js.map +1 -1
- package/package.json +9 -9
|
@@ -44,7 +44,7 @@ export const sendInteractiveMessageChannel = (clark, chatSessionStore) => {
|
|
|
44
44
|
};
|
|
45
45
|
export const sendUserMessageChannel = (clark, chatSessionStore) => {
|
|
46
46
|
const queue = peerQueue(clark);
|
|
47
|
-
return async (payload, delay = 0, immediate = false) => {
|
|
47
|
+
return async (payload, delay = 0, immediate = false, { persistBeforeDeliver = false } = {}) => {
|
|
48
48
|
// Generate ID upfront so both backend storage and frontend receive same ID
|
|
49
49
|
const messageId = payload.id ?? crypto.randomUUID();
|
|
50
50
|
const payloadWithId = { ...payload, id: messageId };
|
|
@@ -57,7 +57,28 @@ export const sendUserMessageChannel = (clark, chatSessionStore) => {
|
|
|
57
57
|
return clark.context.peer.call.aiPushMessage(payloadWithId);
|
|
58
58
|
}
|
|
59
59
|
return queue(async () => {
|
|
60
|
-
|
|
60
|
+
if (persistBeforeDeliver) {
|
|
61
|
+
// Best-effort ordering: await the server write so callers that
|
|
62
|
+
// `await sendUserMessage` return AFTER the record is saved. Required
|
|
63
|
+
// by `emitNextSteps` because the subsequent `generationCompleted`
|
|
64
|
+
// signal triggers a frontend force-reload that re-reads from the
|
|
65
|
+
// server; if the write hasn't landed yet the message is silently lost.
|
|
66
|
+
//
|
|
67
|
+
// NOT a durability guarantee: on write failure we log and still
|
|
68
|
+
// deliver via the peer, so the frontend may briefly see a message
|
|
69
|
+
// that is not persisted. Acceptable for `next_steps` because the
|
|
70
|
+
// feature already tolerates silent skip; callers that need true
|
|
71
|
+
// durability must not rely on this option.
|
|
72
|
+
try {
|
|
73
|
+
await chatSessionStore.recordAssistant(payloadWithId);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
getLogger().warn(`[ai-service] recordAssistant failed; continuing with peer delivery. type=${payloadWithId.type}`, err);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
void chatSessionStore.recordAssistant(payloadWithId);
|
|
81
|
+
}
|
|
61
82
|
if (!clark.context.peer) {
|
|
62
83
|
getLogger().warn(`[ai-service] Cannot send message: no peer. type=${payloadWithId.type}, state=${clark.state}`);
|
|
63
84
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/peer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIlE,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,cAAc,EAAE,CAAC;IACrE,KAAK,CAAC,aAAa,CAAC;QAClB,gBAAgB,EAAE,KAAK;KACxB,CAAC,CAAC;IAEH,OAAO,CAAC,SAA8B,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;QACnD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,OAAO,CAClB,GAAG,EAAE,CACH,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtB,UAAU,CAAC,GAAG,EAAE;oBACd,KAAK,SAAS,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC,EAAE,KAAK,CAAC,CAAC;YACZ,CAAC,CAAC,CACL,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,KAAY,EACZ,gBAAkC,EAClC,EAAE;IACF,MAAM,eAAe,GAAG,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACxE,OAAO,KAAK,EAAE,OAAsB,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,EAAE;QACpE,IAAI,KAAK,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;YAC3C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EACL,8FAA8F;aACjG,CAAC;QACJ,CAAC;QACD,2EAA2E;QAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;QACpD,KAAK,CAAC,aAAa,CAAC;YAClB,wBAAwB,EAAE;gBACxB,EAAE,EAAE,SAAS;gBACb,OAAO,EAAE,aAAa;aACvB;SACF,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/peer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/ai-service/state-machine/mocks.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGrE,eAAO,MAAM,OAAO,QAKY,CAAC;AAgBjC,eAAO,MAAM,QAAQ,EAOL,YAAY,CAAC;AAE7B,eAAO,MAAM,SAAS,EASN,KAAK,CAAC;AAEtB,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/ai-service/state-machine/mocks.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGrE,eAAO,MAAM,OAAO,QAKY,CAAC;AAgBjC,eAAO,MAAM,QAAQ,EAOL,YAAY,CAAC;AAE7B,eAAO,MAAM,SAAS,EASN,KAAK,CAAC;AAEtB,eAAO,MAAM,iBAAiB,EAiJd,uBAAuB,CAAC"}
|
|
@@ -53,6 +53,12 @@ export const mockHandlerParams = {
|
|
|
53
53
|
},
|
|
54
54
|
signals: {
|
|
55
55
|
emit: vi.fn(),
|
|
56
|
+
once: vi
|
|
57
|
+
.fn()
|
|
58
|
+
.mockImplementation((_event, callback) => {
|
|
59
|
+
// Simulate checkpoint uploaded immediately (next microtask)
|
|
60
|
+
void Promise.resolve().then(() => callback());
|
|
61
|
+
}),
|
|
56
62
|
},
|
|
57
63
|
sourceTrackerInterface: {
|
|
58
64
|
getElementToFilePathMap: vi.fn(),
|
|
@@ -146,7 +152,7 @@ export const mockHandlerParams = {
|
|
|
146
152
|
recordAssistantChangeInfo: vi.fn(),
|
|
147
153
|
getLastUserMessage: vi.fn(),
|
|
148
154
|
},
|
|
149
|
-
features: AiServiceFeatureFlags.create(),
|
|
155
|
+
features: AiServiceFeatureFlags.create({ "ai.suggest-whats-next": true }),
|
|
150
156
|
llmProvider: {
|
|
151
157
|
name: "test-provider",
|
|
152
158
|
modelForTask: vi.fn().mockReturnValue(new MockLanguageModelV3({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../../src/ai-service/state-machine/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,IAAI,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAIvD,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,MAAM,CAAC,IAAI,CAC1C,IAAI,CAAC,SAAS,CAAC;IACb,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;CACvB,CAAC,CACH,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;AAEjC,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAE,YAAoB,EAAE,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE;QACX,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC;KACd;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,CAAC;KACb;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE;QACJ,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;QACtB,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7B,0BAA0B,EAAE,EAAE,CAAC,EAAE,EAAE;KACpC;IACD,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;CACY,CAAC;AAE7B,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;IACpB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;IACrB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;IACtB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;IACvB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;IACzB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;CACM,CAAC;AAEtB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc,EAAE;QACd,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;QACxB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;KACtB;IACD,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE;QAChB,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;KACxD;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;KAChB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../../src/ai-service/state-machine/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,IAAI,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAIvD,wFAAwF;AACxF,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,MAAM,CAAC,IAAI,CAC1C,IAAI,CAAC,SAAS,CAAC;IACb,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;CACvB,CAAC,CACH,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC;AAEjC,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAE,YAAoB,EAAE,EAAE,CAAC,CAAC;IACpE,WAAW,EAAE;QACX,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,CAAC;QACZ,UAAU,EAAE,CAAC;KACd;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,CAAC;KACb;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE;QACJ,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;QACtB,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7B,0BAA0B,EAAE,EAAE,CAAC,EAAE,EAAE;KACpC;IACD,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;CACY,CAAC;AAE7B,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC3B,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;IACpB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;IACrB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;IACtB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;IACvB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE;IACzB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;CACM,CAAC;AAEtB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc,EAAE;QACd,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;QACxB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;KACtB;IACD,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE;QAChB,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;KACxD;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;KAChB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,EAAE,EAAE;aACL,EAAE,EAAE;aACJ,kBAAkB,CACjB,CAAC,MAAc,EAAE,QAAsC,EAAE,EAAE;YACzD,4DAA4D;YAC5D,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC,CACF;KACJ;IACD,sBAAsB,EAAE;QACtB,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE;QAChC,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7B,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7B,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7B,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7B,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE;QAChC,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE;QAChC,yBAAyB,EAAE,EAAE,CAAC,EAAE,EAAE;QAClC,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;KAC3B;IACD,QAAQ,EAAE;QACR,cAAc,EAAE,WAAW;QAC3B,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;YACjC;gBACE,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,sBAAsB;aAChC;SACF,CAAC;QACF,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;QACrB,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;QAClB,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;QACxB,qBAAqB,EAAE,EAAE,CAAC,EAAE,EAAE;KAC/B;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;YAC5C;gBACE,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,sBAAsB;aAChC;SACF,CAAC;QACF,qBAAqB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;YAC7C,KAAK,EAAE,CAAC,SAAS,CAAC;YAClB,OAAO,EAAE,mBAAmB;SAC7B,CAAC;KACH;IACD,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CACpC,IAAI,mBAAmB,CAAC;QACtB,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC7B,MAAM,EAAE,sBAAsB,CAAC;gBAC7B,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE;oBAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE;oBACjD;wBACE,IAAI,EAAE,QAAQ;wBACd,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;wBAC9C,KAAK,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;qBAC7B;iBACF;aACF,CAAC;YACF,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;YACvB,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;SAC1B,CAAC;KACH,CAAC,CACH;IACD,gBAAgB,EAAE;QAChB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;QACvB,8BAA8B,EAAE,EAAE,CAAC,EAAE,EAAE;KACxC;IACD,gBAAgB,EAAE;QAChB,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YACjD,mBAAmB,EAAE,EAAE;YACvB,kBAAkB,EAAE,EAAE;YACtB,kBAAkB,EAAE,EAAE;YACtB,KAAK,EAAE;gBACL,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,EAAE;gBACR,YAAY,EAAE,EAAE;aACjB;SACF,CAAC;QACF,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;YACtC,GAAG,EAAE,EAAE;YACP,IAAI,EAAE,EAAE;YACR,YAAY,EAAE,EAAE;SACjB,CAAC;QACF,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;QAC3C,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;KAChD;IACD,eAAe,EAAE;QACf,sBAAsB,EAAE,EAAE;QAC1B,kBAAkB,EAAE,EAAE;QACtB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;KAC1C;IACD,gBAAgB,EAAE;QAChB,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;QACpB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;QACnB,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7B,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE;QAC5B,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;QACxB,yBAAyB,EAAE,EAAE,CAAC,EAAE,EAAE;QAClC,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE;KAC5B;IACD,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;IACzE,WAAW,EAAE;QACX,IAAI,EAAE,eAAe;QACrB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CACnC,IAAI,mBAAmB,CAAC;YACtB,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAC7B,MAAM,EAAE,sBAAsB,CAAC;oBAC7B,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,QAAQ;4BACd,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;4BAC9C,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;yBAC3B;qBACF;iBACF,CAAC;gBACF,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;gBACvB,QAAQ,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;aAC1B,CAAC;SACH,CAAC,CACH;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;KACd;CACoC,CAAC"}
|
|
@@ -10,6 +10,25 @@ export interface LLMConfigResult {
|
|
|
10
10
|
};
|
|
11
11
|
headers: Record<string, string | undefined>;
|
|
12
12
|
}
|
|
13
|
+
export interface ThinkingOptionsParams {
|
|
14
|
+
thinkingEnabled: boolean;
|
|
15
|
+
thinkingBudgetTokens: number;
|
|
16
|
+
interleavedThinking: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface ThinkingProviderOptions {
|
|
19
|
+
anthropic?: Record<string, any>;
|
|
20
|
+
bedrock?: Record<string, any>;
|
|
21
|
+
headers: Record<string, string | undefined>;
|
|
22
|
+
}
|
|
23
|
+
export declare function usesAdaptiveEffort(coreModel: string | undefined): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Builds the provider-specific thinking config for a given core model.
|
|
26
|
+
*
|
|
27
|
+
* This is a pure function so retries that swap models (e.g. opus-4-7 →
|
|
28
|
+
* sonnet-4-6 → opus-4-7) can call it per attempt to emit the shape the
|
|
29
|
+
* current model accepts. See {@link usesAdaptiveEffort}.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildThinkingProviderOptions(coreModel: string | undefined, params: ThinkingOptionsParams): ThinkingProviderOptions;
|
|
13
32
|
/**
|
|
14
33
|
* Processes LLM config and returns the configuration options for AI SDK calls.
|
|
15
34
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-config-utils.d.ts","sourceRoot":"","sources":["../../../src/ai-service/util/llm-config-utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAI/E,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,iBAAiB,GAAG,SAAS,EACxC,mBAAmB,GAAE,MAAa,EAClC,UAAU,CAAC,EAAE,MAAM,GAClB,eAAe,
|
|
1
|
+
{"version":3,"file":"llm-config-utils.d.ts","sourceRoot":"","sources":["../../../src/ai-service/util/llm-config-utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAI/E,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7C;AAeD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEzE;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,qBAAqB,GAC5B,uBAAuB,CAiDzB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,iBAAiB,GAAG,SAAS,EACxC,mBAAmB,GAAE,MAAa,EAClC,UAAU,CAAC,EAAE,MAAM,GAClB,eAAe,CA4DjB"}
|
|
@@ -1,5 +1,66 @@
|
|
|
1
1
|
import { MAX_OUTPUT_TOKENS, MODEL_CAPABILITIES, } from "@superblocksteam/library-shared/types";
|
|
2
2
|
import { getLogger } from "../../util/logger.js";
|
|
3
|
+
const INTERLEAVED_THINKING_BETA = "interleaved-thinking-2025-05-14";
|
|
4
|
+
const EFFORT_BETA = "effort-2025-11-24";
|
|
5
|
+
/**
|
|
6
|
+
* Models that require Anthropic's adaptive-thinking API + `output_config.effort`.
|
|
7
|
+
*
|
|
8
|
+
* Opus 4.7 rejects `thinking: { type: "enabled" }` with a 400. We hardcode
|
|
9
|
+
* effort to `"high"` for these models regardless of other thinking flags —
|
|
10
|
+
* the legacy `budgetTokens` knob does not apply.
|
|
11
|
+
*/
|
|
12
|
+
const ADAPTIVE_EFFORT_MODELS = new Set(["claude-opus-4-7"]);
|
|
13
|
+
const HARDCODED_EFFORT = "high";
|
|
14
|
+
export function usesAdaptiveEffort(coreModel) {
|
|
15
|
+
return coreModel !== undefined && ADAPTIVE_EFFORT_MODELS.has(coreModel);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Builds the provider-specific thinking config for a given core model.
|
|
19
|
+
*
|
|
20
|
+
* This is a pure function so retries that swap models (e.g. opus-4-7 →
|
|
21
|
+
* sonnet-4-6 → opus-4-7) can call it per attempt to emit the shape the
|
|
22
|
+
* current model accepts. See {@link usesAdaptiveEffort}.
|
|
23
|
+
*/
|
|
24
|
+
export function buildThinkingProviderOptions(coreModel, params) {
|
|
25
|
+
const { thinkingEnabled, thinkingBudgetTokens, interleavedThinking } = params;
|
|
26
|
+
if (usesAdaptiveEffort(coreModel)) {
|
|
27
|
+
const anthropic = {
|
|
28
|
+
thinking: { type: "adaptive", display: "summarized" },
|
|
29
|
+
effort: HARDCODED_EFFORT,
|
|
30
|
+
};
|
|
31
|
+
const bedrockBetas = [EFFORT_BETA];
|
|
32
|
+
if (interleavedThinking) {
|
|
33
|
+
bedrockBetas.push(INTERLEAVED_THINKING_BETA);
|
|
34
|
+
}
|
|
35
|
+
const bedrock = {
|
|
36
|
+
additionalModelRequestFields: {
|
|
37
|
+
thinking: { type: "adaptive", display: "summarized" },
|
|
38
|
+
output_config: { effort: HARDCODED_EFFORT },
|
|
39
|
+
anthropic_beta: bedrockBetas,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
const headers = interleavedThinking
|
|
43
|
+
? { "anthropic-beta": INTERLEAVED_THINKING_BETA }
|
|
44
|
+
: {};
|
|
45
|
+
return { anthropic, bedrock, headers };
|
|
46
|
+
}
|
|
47
|
+
if (!thinkingEnabled) {
|
|
48
|
+
return { headers: {} };
|
|
49
|
+
}
|
|
50
|
+
const anthropic = {
|
|
51
|
+
thinking: { type: "enabled", budgetTokens: thinkingBudgetTokens },
|
|
52
|
+
};
|
|
53
|
+
const bedrock = {
|
|
54
|
+
additionalModelRequestFields: {
|
|
55
|
+
thinking: { type: "enabled", budget_tokens: thinkingBudgetTokens },
|
|
56
|
+
anthropic_beta: [INTERLEAVED_THINKING_BETA],
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
const headers = interleavedThinking
|
|
60
|
+
? { "anthropic-beta": INTERLEAVED_THINKING_BETA }
|
|
61
|
+
: {};
|
|
62
|
+
return { anthropic, bedrock, headers };
|
|
63
|
+
}
|
|
3
64
|
/**
|
|
4
65
|
* Processes LLM config and returns the configuration options for AI SDK calls.
|
|
5
66
|
*
|
|
@@ -9,17 +70,18 @@ import { getLogger } from "../../util/logger.js";
|
|
|
9
70
|
*/
|
|
10
71
|
export function processLLMConfig(llmConfig, defaultBudgetTokens = 5000, logContext) {
|
|
11
72
|
const logger = getLogger();
|
|
12
|
-
// Get thinking configuration from context, with defaults
|
|
13
73
|
const thinkingEnabled = llmConfig?.thinkingEnabled ?? true;
|
|
14
74
|
let thinkingBudgetTokens = llmConfig?.thinkingBudgetTokens
|
|
15
75
|
? parseInt(llmConfig.thinkingBudgetTokens)
|
|
16
76
|
: defaultBudgetTokens;
|
|
17
77
|
const interleavedThinking = llmConfig?.interleavedThinking ?? true;
|
|
18
78
|
const maxOutputTokens = MAX_OUTPUT_TOKENS;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
79
|
+
const coreModel = llmConfig?.coreModel;
|
|
80
|
+
// Budget validation is only meaningful for the legacy enabled+budgetTokens
|
|
81
|
+
// path. Adaptive-effort models ignore budgetTokens entirely.
|
|
82
|
+
if (thinkingEnabled && !usesAdaptiveEffort(coreModel)) {
|
|
83
|
+
const modelKey = coreModel ?? "claude-sonnet-4-5";
|
|
84
|
+
const modelCaps = MODEL_CAPABILITIES[modelKey];
|
|
23
85
|
const modelMaxOutput = modelCaps?.maxOutputTokens ?? 64_000;
|
|
24
86
|
const total = maxOutputTokens + thinkingBudgetTokens;
|
|
25
87
|
if (total > modelMaxOutput) {
|
|
@@ -29,38 +91,29 @@ export function processLLMConfig(llmConfig, defaultBudgetTokens = 5000, logConte
|
|
|
29
91
|
thinkingBudgetTokens = Math.max(0, adjustedThinkingBudget);
|
|
30
92
|
}
|
|
31
93
|
}
|
|
32
|
-
// Log LLM provider configuration if context is provided
|
|
33
94
|
if (logContext) {
|
|
34
95
|
getLogger().info(`${logContext} LLM Provider Config: provider=${llmConfig?.provider || "bedrock (default)"}, ` +
|
|
35
|
-
`
|
|
36
|
-
`interleaved=${interleavedThinking}`);
|
|
96
|
+
`coreModel=${coreModel ?? "unset"}, thinking=${thinkingEnabled}, ` +
|
|
97
|
+
`budget=${thinkingBudgetTokens}, interleaved=${interleavedThinking}`);
|
|
37
98
|
}
|
|
38
|
-
|
|
39
|
-
|
|
99
|
+
const thinkingOptions = buildThinkingProviderOptions(coreModel, {
|
|
100
|
+
thinkingEnabled,
|
|
101
|
+
thinkingBudgetTokens,
|
|
102
|
+
interleavedThinking,
|
|
103
|
+
});
|
|
104
|
+
const providerOptions = thinkingOptions.anthropic && thinkingOptions.bedrock
|
|
40
105
|
? {
|
|
41
|
-
anthropic:
|
|
42
|
-
|
|
43
|
-
},
|
|
44
|
-
bedrock: {
|
|
45
|
-
additionalModelRequestFields: {
|
|
46
|
-
thinking: { type: "enabled", budget_tokens: thinkingBudgetTokens },
|
|
47
|
-
anthropic_beta: ["interleaved-thinking-2025-05-14"],
|
|
48
|
-
},
|
|
49
|
-
},
|
|
106
|
+
anthropic: thinkingOptions.anthropic,
|
|
107
|
+
bedrock: thinkingOptions.bedrock,
|
|
50
108
|
}
|
|
51
109
|
: undefined;
|
|
52
|
-
const headers = thinkingEnabled && interleavedThinking
|
|
53
|
-
? {
|
|
54
|
-
"anthropic-beta": "interleaved-thinking-2025-05-14",
|
|
55
|
-
}
|
|
56
|
-
: {};
|
|
57
110
|
return {
|
|
58
111
|
thinkingEnabled,
|
|
59
112
|
thinkingBudgetTokens,
|
|
60
113
|
interleavedThinking,
|
|
61
114
|
maxOutputTokens,
|
|
62
115
|
providerOptions,
|
|
63
|
-
headers,
|
|
116
|
+
headers: thinkingOptions.headers,
|
|
64
117
|
};
|
|
65
118
|
}
|
|
66
119
|
//# sourceMappingURL=llm-config-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-config-utils.js","sourceRoot":"","sources":["../../../src/ai-service/util/llm-config-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"llm-config-utils.js","sourceRoot":"","sources":["../../../src/ai-service/util/llm-config-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,12 @@ import type { Clark } from "../state-machine/clark-fsm.js";
|
|
|
4
4
|
* A predicate that determines whether to stop the agent's execution based on the provided steps.
|
|
5
5
|
*/
|
|
6
6
|
export type StopCondition<TOOLS extends ToolSet> = BaseStopCondition<TOOLS>;
|
|
7
|
-
/** A stop condition that checks if the last step used a specific tool and got a
|
|
8
|
-
*
|
|
7
|
+
/** A stop condition that checks if the last step used a specific tool and got a successful result.
|
|
8
|
+
* A tool result is considered successful if it exists and its output.success is not explicitly false.
|
|
9
|
+
* Tools that don't return a success field are treated as successful (backwards compatibility).
|
|
9
10
|
*
|
|
10
11
|
* @param toolName - name of the tool to condition on
|
|
11
|
-
* @param
|
|
12
|
+
* @param maxAttempts - stop the loop if the tool has been called this many times without success
|
|
12
13
|
*/
|
|
13
14
|
export declare function hasToolSuccess(toolName: string, maxAttempts?: number): StopCondition<any>;
|
|
14
15
|
export declare function isAwaitingUser(clark: Clark): StopCondition<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-condition.d.ts","sourceRoot":"","sources":["../../../src/ai-service/util/stop-condition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,IAAI,CAAC;AAGtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAE5E
|
|
1
|
+
{"version":3,"file":"stop-condition.d.ts","sourceRoot":"","sources":["../../../src/ai-service/util/stop-condition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,IAAI,CAAC;AAGtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAE5E;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAU,GACtB,aAAa,CAAC,GAAG,CAAC,CAiBpB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAI/D;AAED,eAAO,MAAM,wBAAwB,GAAI,OAAO,KAAK,KAAG,aAAa,CAAC,GAAG,CAIxE,CAAC"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { ClarkStateNames } from "../state-machine/clark-fsm.js";
|
|
2
|
-
/** A stop condition that checks if the last step used a specific tool and got a
|
|
3
|
-
*
|
|
2
|
+
/** A stop condition that checks if the last step used a specific tool and got a successful result.
|
|
3
|
+
* A tool result is considered successful if it exists and its output.success is not explicitly false.
|
|
4
|
+
* Tools that don't return a success field are treated as successful (backwards compatibility).
|
|
4
5
|
*
|
|
5
6
|
* @param toolName - name of the tool to condition on
|
|
6
|
-
* @param
|
|
7
|
+
* @param maxAttempts - stop the loop if the tool has been called this many times without success
|
|
7
8
|
*/
|
|
8
9
|
export function hasToolSuccess(toolName, maxAttempts = 5) {
|
|
9
10
|
return ({ steps }) => {
|
|
10
|
-
const hasSuccess = steps[steps.length - 1]?.toolResults?.some((toolResult) => toolResult.toolName === toolName
|
|
11
|
+
const hasSuccess = steps[steps.length - 1]?.toolResults?.some((toolResult) => toolResult.toolName === toolName &&
|
|
12
|
+
toolResult.output?.success !==
|
|
13
|
+
false) ?? false;
|
|
11
14
|
if (hasSuccess) {
|
|
12
15
|
return true;
|
|
13
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-condition.js","sourceRoot":"","sources":["../../../src/ai-service/util/stop-condition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAQhE
|
|
1
|
+
{"version":3,"file":"stop-condition.js","sourceRoot":"","sources":["../../../src/ai-service/util/stop-condition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAQhE;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAgB,EAChB,cAAsB,CAAC;IAEvB,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACnB,MAAM,UAAU,GACd,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CACxC,CAAC,UAAU,EAAE,EAAE,CACb,UAAU,CAAC,QAAQ,KAAK,QAAQ;YAC/B,UAAiD,CAAC,MAAM,EAAE,OAAO;gBAChE,KAAK,CACV,IAAI,KAAK,CAAC;QACb,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK;aACnB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;aACvC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QAC/D,OAAO,QAAQ,IAAI,WAAW,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO,GAAG,EAAE;QACV,OAAO,KAAK,CAAC,KAAK,KAAK,eAAe,CAAC,YAAY,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAY,EAAsB,EAAE;IAC3E,OAAO,KAAK,IAAI,EAAE;QAChB,OAAO,KAAK,CAAC,OAAO,CAAC,4BAA4B,KAAK,SAAS,CAAC;IAClE,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type GitLogCommit = {
|
|
2
|
+
sha: string;
|
|
3
|
+
parents: string[];
|
|
4
|
+
message: string;
|
|
5
|
+
author: string;
|
|
6
|
+
date: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const GIT_LOG_FORMAT: string;
|
|
9
|
+
export declare function parseGitLog(raw: string): GitLogCommit[];
|
|
10
|
+
//# sourceMappingURL=git-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-log.d.ts","sourceRoot":"","sources":["../src/git-log.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAIF,eAAO,MAAM,cAAc,QAA6C,CAAC;AAEzE,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAkBvD"}
|
package/dist/git-log.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const SEP = "<<SEP>>";
|
|
2
|
+
export const GIT_LOG_FORMAT = ["%H", "%P", "%s", "%an", "%aI"].join(SEP);
|
|
3
|
+
export function parseGitLog(raw) {
|
|
4
|
+
if (!raw.trim())
|
|
5
|
+
return [];
|
|
6
|
+
return raw
|
|
7
|
+
.trimEnd()
|
|
8
|
+
.split("\n")
|
|
9
|
+
.map((line) => {
|
|
10
|
+
const parts = line.split(SEP);
|
|
11
|
+
const parents = (parts[1] ?? "")
|
|
12
|
+
.split(" ")
|
|
13
|
+
.filter((sha) => sha.length > 0);
|
|
14
|
+
return {
|
|
15
|
+
sha: parts[0] ?? "",
|
|
16
|
+
parents,
|
|
17
|
+
message: parts[2] ?? "",
|
|
18
|
+
author: parts[3] ?? "",
|
|
19
|
+
date: parts[4] ?? "",
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=git-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-log.js","sourceRoot":"","sources":["../src/git-log.ts"],"names":[],"mappings":"AAQA,MAAM,GAAG,GAAG,SAAS,CAAC;AAEtB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEzE,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC3B,OAAO,GAAG;SACP,OAAO,EAAE;SACT,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC7B,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnC,OAAO;YACL,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YACnB,OAAO;YACP,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YACvB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;YACtB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;SACrB,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { GitService } from "./index.js";
|
|
2
|
+
export declare const BITBUCKET_PIPELINE_PATH = "bitbucket-pipelines.yml";
|
|
3
|
+
export declare function ensureBitbucketWorkflowFile(gitService: GitService, superblocksBaseUrl?: string): Promise<{
|
|
4
|
+
created: boolean;
|
|
5
|
+
}>;
|
|
6
|
+
//# sourceMappingURL=bitbucket-workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitbucket-workflow.d.ts","sourceRoot":"","sources":["../../src/git-service/bitbucket-workflow.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,UAAU,EACtB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAY/B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { buildBitbucketSuperblocksSyncPipelineFromBaseUrl, isBitbucketRemoteUrl, } from "@superblocksteam/shared";
|
|
2
|
+
import { ensureWorkflowFile } from "./ensure-workflow-file.js";
|
|
3
|
+
export const BITBUCKET_PIPELINE_PATH = "bitbucket-pipelines.yml";
|
|
4
|
+
export function ensureBitbucketWorkflowFile(gitService, superblocksBaseUrl) {
|
|
5
|
+
return ensureWorkflowFile(gitService, {
|
|
6
|
+
providerName: "bitbucket",
|
|
7
|
+
workflowPath: BITBUCKET_PIPELINE_PATH,
|
|
8
|
+
isProviderRemoteUrl: isBitbucketRemoteUrl,
|
|
9
|
+
buildWorkflowFromBaseUrl: buildBitbucketSuperblocksSyncPipelineFromBaseUrl,
|
|
10
|
+
}, superblocksBaseUrl);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=bitbucket-workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bitbucket-workflow.js","sourceRoot":"","sources":["../../src/git-service/bitbucket-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gDAAgD,EAChD,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAEjE,MAAM,UAAU,2BAA2B,CACzC,UAAsB,EACtB,kBAA2B;IAE3B,OAAO,kBAAkB,CACvB,UAAU,EACV;QACE,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,uBAAuB;QACrC,mBAAmB,EAAE,oBAAoB;QACzC,wBAAwB,EACtB,gDAAgD;KACnD,EACD,kBAAkB,CACnB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-manager.d.ts","sourceRoot":"","sources":["../src/socket-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAKlC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAIjD,OAAO,KAAK,EAGV,mBAAmB,EACnB,oBAAoB,EAGrB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAIL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"socket-manager.d.ts","sourceRoot":"","sources":["../src/socket-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAKlC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAIjD,OAAO,KAAK,EAGV,mBAAmB,EACnB,oBAAoB,EAGrB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAIL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAOzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAK3D,KAAK,mBAAmB,GAAG;IACzB,gBAAgB,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/D,iBAAiB,EAAE,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACzD,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC;CAC/B,CAAC;AAOF,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,iBAIjD;AAED,wBAAgB,oBAAoB,SAGnC;AAED,cAAM,aAAc,SAAQ,kBAAkB,CAAC,mBAAmB,CAAC;IACjE,OAAO,CAAC,OAAO,CAA8C;IAE7D,OAAO,CAAC,aAAa,CAAiD;IACtE,OAAO,CAAC,cAAc,CAAkD;IACxE,OAAO,CAAC,SAAS,CAAwB;gBAE7B,MAAM,EAAE,MAAM;IAI1B,OAAO,CAAC,YAAY,CAA8B;IAClD,iBAAiB,CAAC,EAChB,MAAM,EACN,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,EACJ,MAAM,EACN,gBAAgB,EAChB,kBAAkB,GACnB,EAAE;QACD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACpB,eAAe,EAAE,iBAAiB,CAAC;QACnC,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;QAC3D,kBAAkB,EAAE,kBAAkB,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B;IA6xCD,iBAAiB,CACf,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAOnE,kBAAkB,CAChB,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,oBAAoB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAOpE,mBAAmB;IAInB,gBAAgB,IAAI,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAIhE,eAAe;IASf,OAAO;CAGR"}
|
package/dist/socket-manager.js
CHANGED
|
@@ -5,8 +5,10 @@ import { WebSocketServer } from "ws";
|
|
|
5
5
|
import { createISocketClient, DEFAULT_NON_GIT_BRANCH, SUPERBLOCKS_LIVE_GIT_BRANCH, TracedEventEmitter, TracedSocket, } from "@superblocksteam/shared";
|
|
6
6
|
import { uploadContextToBucketeer } from "./ai-service/context-upload.js";
|
|
7
7
|
import { createSocketRecordingMiddleware } from "./ai-service/recording/recorders/socket-recorder.js";
|
|
8
|
+
import { GIT_LOG_FORMAT, parseGitLog } from "./git-log.js";
|
|
8
9
|
import { GIT_OPERATION_BUSY_MESSAGE, } from "./git-operation-lock.js";
|
|
9
10
|
import { ensureAzureDevOpsWorkflowFile } from "./git-service/azure-devops-workflow.js";
|
|
11
|
+
import { ensureBitbucketWorkflowFile } from "./git-service/bitbucket-workflow.js";
|
|
10
12
|
import { ensureGithubWorkflowFile } from "./git-service/github-workflow.js";
|
|
11
13
|
import { ensureGitlabWorkflowFile } from "./git-service/gitlab-workflow.js";
|
|
12
14
|
import { GitConflictError } from "./git-service/index.js";
|
|
@@ -467,6 +469,14 @@ class SocketManager extends TracedEventEmitter {
|
|
|
467
469
|
...getErrorMeta(error),
|
|
468
470
|
});
|
|
469
471
|
});
|
|
472
|
+
await ensureBitbucketWorkflowFile(readyGitService, resolvedBaseUrl).catch((error) => {
|
|
473
|
+
getLogger().warn("[git] gitCommitLocal failed to ensure Bitbucket workflow file", {
|
|
474
|
+
gitCategory: "setup",
|
|
475
|
+
gitOperation: "ensure-bitbucket-workflow-file",
|
|
476
|
+
gitOutcome: "failed",
|
|
477
|
+
...getErrorMeta(error),
|
|
478
|
+
});
|
|
479
|
+
});
|
|
470
480
|
await readyGitService.add(".");
|
|
471
481
|
const result = await readyGitService.commit(request.message);
|
|
472
482
|
return { sha: result.commit };
|
|
@@ -829,29 +839,14 @@ class SocketManager extends TracedEventEmitter {
|
|
|
829
839
|
});
|
|
830
840
|
}
|
|
831
841
|
}
|
|
832
|
-
const SEP = "<<SEP>>";
|
|
833
|
-
const format = ["%H", "%s", "%an", "%aI"].join(SEP);
|
|
834
842
|
const raw = await readyGitService.raw([
|
|
835
843
|
"log",
|
|
836
844
|
logRef,
|
|
837
|
-
`--format=${
|
|
845
|
+
`--format=${GIT_LOG_FORMAT}`,
|
|
838
846
|
`-n`,
|
|
839
847
|
String(limit),
|
|
840
848
|
]);
|
|
841
|
-
|
|
842
|
-
return [];
|
|
843
|
-
return raw
|
|
844
|
-
.trimEnd()
|
|
845
|
-
.split("\n")
|
|
846
|
-
.map((line) => {
|
|
847
|
-
const parts = line.split(SEP);
|
|
848
|
-
return {
|
|
849
|
-
sha: parts[0] ?? "",
|
|
850
|
-
message: parts[1] ?? "",
|
|
851
|
-
author: parts[2] ?? "",
|
|
852
|
-
date: parts[3] ?? "",
|
|
853
|
-
};
|
|
854
|
-
});
|
|
849
|
+
return parseGitLog(raw);
|
|
855
850
|
},
|
|
856
851
|
],
|
|
857
852
|
gitPrepareMainCommit: [
|