xibecode 1.0.3 → 1.0.7
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/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +10 -7
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/diagnostics.js +1 -1
- package/dist/commands/diagnostics.js.map +1 -1
- package/dist/commands/mcp.js +1 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/resume.js +1 -1
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/run-pr.d.ts.map +1 -1
- package/dist/commands/run-pr.js +10 -9
- package/dist/commands/run-pr.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +14 -13
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +3 -2
- package/dist/commands/skills.js.map +1 -1
- package/dist/components/AssistantMarkdown.js +1 -1
- package/dist/components/AssistantMarkdown.js.map +1 -1
- package/dist/ui/claude-style-chat.d.ts.map +1 -1
- package/dist/ui/claude-style-chat.js +12 -10
- package/dist/ui/claude-style-chat.js.map +1 -1
- package/dist/utils/built-in-skills-dir.d.ts +7 -0
- package/dist/utils/built-in-skills-dir.d.ts.map +1 -0
- package/dist/utils/built-in-skills-dir.js +11 -0
- package/dist/utils/built-in-skills-dir.js.map +1 -0
- package/dist/utils/config.d.ts +2 -119
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +3 -88
- package/dist/utils/config.js.map +1 -1
- package/package.json +11 -17
- package/dist/commands/punycode.d.ts +0 -5
- package/dist/commands/punycode.d.ts.map +0 -1
- package/dist/commands/punycode.js +0 -48
- package/dist/commands/punycode.js.map +0 -1
- package/dist/commands/tui.d.ts +0 -9
- package/dist/commands/tui.d.ts.map +0 -1
- package/dist/commands/tui.js +0 -83
- package/dist/commands/tui.js.map +0 -1
- package/dist/core/agent-tool-policies.d.ts +0 -5
- package/dist/core/agent-tool-policies.d.ts.map +0 -1
- package/dist/core/agent-tool-policies.js +0 -18
- package/dist/core/agent-tool-policies.js.map +0 -1
- package/dist/core/agent.d.ts +0 -181
- package/dist/core/agent.d.ts.map +0 -1
- package/dist/core/agent.js +0 -1777
- package/dist/core/agent.js.map +0 -1
- package/dist/core/background-agent.d.ts +0 -23
- package/dist/core/background-agent.d.ts.map +0 -1
- package/dist/core/background-agent.js +0 -175
- package/dist/core/background-agent.js.map +0 -1
- package/dist/core/code-graph.d.ts +0 -18
- package/dist/core/code-graph.d.ts.map +0 -1
- package/dist/core/code-graph.js +0 -105
- package/dist/core/code-graph.js.map +0 -1
- package/dist/core/conflict-solver.d.ts +0 -26
- package/dist/core/conflict-solver.d.ts.map +0 -1
- package/dist/core/conflict-solver.js +0 -108
- package/dist/core/conflict-solver.js.map +0 -1
- package/dist/core/context-compactor.d.ts +0 -10
- package/dist/core/context-compactor.d.ts.map +0 -1
- package/dist/core/context-compactor.js +0 -158
- package/dist/core/context-compactor.js.map +0 -1
- package/dist/core/context-pruner.d.ts +0 -19
- package/dist/core/context-pruner.d.ts.map +0 -1
- package/dist/core/context-pruner.js +0 -103
- package/dist/core/context-pruner.js.map +0 -1
- package/dist/core/context.d.ts +0 -82
- package/dist/core/context.d.ts.map +0 -1
- package/dist/core/context.js +0 -273
- package/dist/core/context.js.map +0 -1
- package/dist/core/conversation-recovery.d.ts +0 -9
- package/dist/core/conversation-recovery.d.ts.map +0 -1
- package/dist/core/conversation-recovery.js +0 -15
- package/dist/core/conversation-recovery.js.map +0 -1
- package/dist/core/debug-workflow.d.ts +0 -9
- package/dist/core/debug-workflow.d.ts.map +0 -1
- package/dist/core/debug-workflow.js +0 -19
- package/dist/core/debug-workflow.js.map +0 -1
- package/dist/core/docs-scraper.d.ts +0 -40
- package/dist/core/docs-scraper.d.ts.map +0 -1
- package/dist/core/docs-scraper.js +0 -386
- package/dist/core/docs-scraper.js.map +0 -1
- package/dist/core/editor.d.ts +0 -87
- package/dist/core/editor.d.ts.map +0 -1
- package/dist/core/editor.js +0 -377
- package/dist/core/editor.js.map +0 -1
- package/dist/core/export.d.ts +0 -11
- package/dist/core/export.d.ts.map +0 -1
- package/dist/core/export.js +0 -54
- package/dist/core/export.js.map +0 -1
- package/dist/core/history-manager.d.ts +0 -75
- package/dist/core/history-manager.d.ts.map +0 -1
- package/dist/core/history-manager.js +0 -146
- package/dist/core/history-manager.js.map +0 -1
- package/dist/core/marketplace-client.d.ts +0 -52
- package/dist/core/marketplace-client.d.ts.map +0 -1
- package/dist/core/marketplace-client.js +0 -71
- package/dist/core/marketplace-client.js.map +0 -1
- package/dist/core/mcp/mcp-config.d.ts +0 -10
- package/dist/core/mcp/mcp-config.d.ts.map +0 -1
- package/dist/core/mcp/mcp-config.js +0 -70
- package/dist/core/mcp/mcp-config.js.map +0 -1
- package/dist/core/mcp/mcp-policy.d.ts +0 -17
- package/dist/core/mcp/mcp-policy.d.ts.map +0 -1
- package/dist/core/mcp/mcp-policy.js +0 -56
- package/dist/core/mcp/mcp-policy.js.map +0 -1
- package/dist/core/mcp/oauth-flow.d.ts +0 -30
- package/dist/core/mcp/oauth-flow.d.ts.map +0 -1
- package/dist/core/mcp/oauth-flow.js +0 -230
- package/dist/core/mcp/oauth-flow.js.map +0 -1
- package/dist/core/mcp/oauth-store.d.ts +0 -13
- package/dist/core/mcp/oauth-store.d.ts.map +0 -1
- package/dist/core/mcp/oauth-store.js +0 -68
- package/dist/core/mcp/oauth-store.js.map +0 -1
- package/dist/core/mcp/resolve-mcp-servers.d.ts +0 -16
- package/dist/core/mcp/resolve-mcp-servers.d.ts.map +0 -1
- package/dist/core/mcp/resolve-mcp-servers.js +0 -83
- package/dist/core/mcp/resolve-mcp-servers.js.map +0 -1
- package/dist/core/mcp-client.d.ts +0 -99
- package/dist/core/mcp-client.d.ts.map +0 -1
- package/dist/core/mcp-client.js +0 -317
- package/dist/core/mcp-client.js.map +0 -1
- package/dist/core/memory-promotions.d.ts +0 -15
- package/dist/core/memory-promotions.d.ts.map +0 -1
- package/dist/core/memory-promotions.js +0 -38
- package/dist/core/memory-promotions.js.map +0 -1
- package/dist/core/memory.d.ts +0 -32
- package/dist/core/memory.d.ts.map +0 -1
- package/dist/core/memory.js +0 -121
- package/dist/core/memory.js.map +0 -1
- package/dist/core/modes.d.ts +0 -432
- package/dist/core/modes.d.ts.map +0 -1
- package/dist/core/modes.js +0 -1094
- package/dist/core/modes.js.map +0 -1
- package/dist/core/pattern-miner.d.ts +0 -43
- package/dist/core/pattern-miner.d.ts.map +0 -1
- package/dist/core/pattern-miner.js +0 -123
- package/dist/core/pattern-miner.js.map +0 -1
- package/dist/core/permission-store.d.ts +0 -15
- package/dist/core/permission-store.d.ts.map +0 -1
- package/dist/core/permission-store.js +0 -30
- package/dist/core/permission-store.js.map +0 -1
- package/dist/core/permissions.d.ts +0 -33
- package/dist/core/permissions.d.ts.map +0 -1
- package/dist/core/permissions.js +0 -141
- package/dist/core/permissions.js.map +0 -1
- package/dist/core/plan-artifacts.d.ts +0 -10
- package/dist/core/plan-artifacts.d.ts.map +0 -1
- package/dist/core/plan-artifacts.js +0 -60
- package/dist/core/plan-artifacts.js.map +0 -1
- package/dist/core/plan-session.d.ts +0 -25
- package/dist/core/plan-session.d.ts.map +0 -1
- package/dist/core/plan-session.js +0 -99
- package/dist/core/plan-session.js.map +0 -1
- package/dist/core/planMode.d.ts +0 -51
- package/dist/core/planMode.d.ts.map +0 -1
- package/dist/core/planMode.js +0 -245
- package/dist/core/planMode.js.map +0 -1
- package/dist/core/plugins.d.ts +0 -96
- package/dist/core/plugins.d.ts.map +0 -1
- package/dist/core/plugins.js +0 -204
- package/dist/core/plugins.js.map +0 -1
- package/dist/core/session-bridge.d.ts +0 -128
- package/dist/core/session-bridge.d.ts.map +0 -1
- package/dist/core/session-bridge.js +0 -328
- package/dist/core/session-bridge.js.map +0 -1
- package/dist/core/session-manager.d.ts +0 -80
- package/dist/core/session-manager.d.ts.map +0 -1
- package/dist/core/session-manager.js +0 -166
- package/dist/core/session-manager.js.map +0 -1
- package/dist/core/session-memory.d.ts +0 -45
- package/dist/core/session-memory.d.ts.map +0 -1
- package/dist/core/session-memory.js +0 -103
- package/dist/core/session-memory.js.map +0 -1
- package/dist/core/skill-selection.d.ts +0 -36
- package/dist/core/skill-selection.d.ts.map +0 -1
- package/dist/core/skill-selection.js +0 -172
- package/dist/core/skill-selection.js.map +0 -1
- package/dist/core/skills-sh-client.d.ts +0 -19
- package/dist/core/skills-sh-client.d.ts.map +0 -1
- package/dist/core/skills-sh-client.js +0 -75
- package/dist/core/skills-sh-client.js.map +0 -1
- package/dist/core/skills.d.ts +0 -97
- package/dist/core/skills.d.ts.map +0 -1
- package/dist/core/skills.js +0 -339
- package/dist/core/skills.js.map +0 -1
- package/dist/core/swarm.d.ts +0 -34
- package/dist/core/swarm.d.ts.map +0 -1
- package/dist/core/swarm.js +0 -111
- package/dist/core/swarm.js.map +0 -1
- package/dist/core/task-status.d.ts +0 -13
- package/dist/core/task-status.d.ts.map +0 -1
- package/dist/core/task-status.js +0 -17
- package/dist/core/task-status.js.map +0 -1
- package/dist/core/tool-orchestrator.d.ts +0 -30
- package/dist/core/tool-orchestrator.d.ts.map +0 -1
- package/dist/core/tool-orchestrator.js +0 -89
- package/dist/core/tool-orchestrator.js.map +0 -1
- package/dist/core/tools.d.ts +0 -462
- package/dist/core/tools.d.ts.map +0 -1
- package/dist/core/tools.js +0 -2916
- package/dist/core/tools.js.map +0 -1
- package/dist/core/transcript-cleanup.d.ts +0 -8
- package/dist/core/transcript-cleanup.d.ts.map +0 -1
- package/dist/core/transcript-cleanup.js +0 -52
- package/dist/core/transcript-cleanup.js.map +0 -1
- package/dist/core/visual-feedback.d.ts +0 -20
- package/dist/core/visual-feedback.d.ts.map +0 -1
- package/dist/core/visual-feedback.js +0 -117
- package/dist/core/visual-feedback.js.map +0 -1
- package/dist/tools/browser.d.ts +0 -120
- package/dist/tools/browser.d.ts.map +0 -1
- package/dist/tools/browser.js +0 -439
- package/dist/tools/browser.js.map +0 -1
- package/dist/tools/test-generator.d.ts +0 -157
- package/dist/tools/test-generator.d.ts.map +0 -1
- package/dist/tools/test-generator.js +0 -893
- package/dist/tools/test-generator.js.map +0 -1
- package/dist/tui/InkApp.d.ts +0 -21
- package/dist/tui/InkApp.d.ts.map +0 -1
- package/dist/tui/InkApp.js +0 -146
- package/dist/tui/InkApp.js.map +0 -1
- package/dist/tui/MarkdownMessage.d.ts +0 -16
- package/dist/tui/MarkdownMessage.d.ts.map +0 -1
- package/dist/tui/MarkdownMessage.js +0 -63
- package/dist/tui/MarkdownMessage.js.map +0 -1
- package/dist/tui/blessed-chat.d.ts +0 -9
- package/dist/tui/blessed-chat.d.ts.map +0 -1
- package/dist/tui/blessed-chat.js +0 -887
- package/dist/tui/blessed-chat.js.map +0 -1
- package/dist/tui/markdown-to-blessed.d.ts +0 -6
- package/dist/tui/markdown-to-blessed.d.ts.map +0 -1
- package/dist/tui/markdown-to-blessed.js +0 -26
- package/dist/tui/markdown-to-blessed.js.map +0 -1
- package/dist/ui/ink/App.d.ts +0 -25
- package/dist/ui/ink/App.d.ts.map +0 -1
- package/dist/ui/ink/App.js +0 -372
- package/dist/ui/ink/App.js.map +0 -1
- package/dist/utils/at-references.d.ts +0 -14
- package/dist/utils/at-references.d.ts.map +0 -1
- package/dist/utils/at-references.js +0 -47
- package/dist/utils/at-references.js.map +0 -1
- package/dist/utils/auto-memory.d.ts +0 -24
- package/dist/utils/auto-memory.d.ts.map +0 -1
- package/dist/utils/auto-memory.js +0 -153
- package/dist/utils/auto-memory.js.map +0 -1
- package/dist/utils/git.d.ts +0 -89
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js +0 -444
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/mcp-servers-file.d.ts +0 -46
- package/dist/utils/mcp-servers-file.d.ts.map +0 -1
- package/dist/utils/mcp-servers-file.js +0 -212
- package/dist/utils/mcp-servers-file.js.map +0 -1
- package/dist/utils/safety.d.ts +0 -60
- package/dist/utils/safety.d.ts.map +0 -1
- package/dist/utils/safety.js +0 -254
- package/dist/utils/safety.js.map +0 -1
- package/dist/utils/smithery.d.ts +0 -25
- package/dist/utils/smithery.d.ts.map +0 -1
- package/dist/utils/smithery.js +0 -50
- package/dist/utils/smithery.js.map +0 -1
- package/dist/utils/testRunner.d.ts +0 -44
- package/dist/utils/testRunner.d.ts.map +0 -1
- package/dist/utils/testRunner.js +0 -270
- package/dist/utils/testRunner.js.map +0 -1
package/dist/core/context.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ChatSession } from './session-manager.js';
|
|
2
|
-
export interface ConversationRecoveryResult {
|
|
3
|
-
session: ChatSession;
|
|
4
|
-
wasRecovered: boolean;
|
|
5
|
-
wasInterrupted: boolean;
|
|
6
|
-
droppedMessages: number;
|
|
7
|
-
}
|
|
8
|
-
export declare function recoverConversation(session: ChatSession): ConversationRecoveryResult;
|
|
9
|
-
//# sourceMappingURL=conversation-recovery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-recovery.d.ts","sourceRoot":"","sources":["../../src/core/conversation-recovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,WAAW,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,0BAA0B,CAcpF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { cleanupTranscript } from './transcript-cleanup.js';
|
|
2
|
-
export function recoverConversation(session) {
|
|
3
|
-
const cleanup = cleanupTranscript(session.messages);
|
|
4
|
-
const recoveredSession = {
|
|
5
|
-
...session,
|
|
6
|
-
messages: cleanup.messages,
|
|
7
|
-
};
|
|
8
|
-
return {
|
|
9
|
-
session: recoveredSession,
|
|
10
|
-
wasRecovered: cleanup.droppedMessages > 0 || cleanup.wasInterrupted,
|
|
11
|
-
wasInterrupted: cleanup.wasInterrupted,
|
|
12
|
-
droppedMessages: cleanup.droppedMessages,
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=conversation-recovery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-recovery.js","sourceRoot":"","sources":["../../src/core/conversation-recovery.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAS5D,MAAM,UAAU,mBAAmB,CAAC,OAAoB;IACtD,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAA0B,CAAC,CAAC;IAEtE,MAAM,gBAAgB,GAAgB;QACpC,GAAG,OAAO;QACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,YAAY,EAAE,OAAO,CAAC,eAAe,GAAG,CAAC,IAAI,OAAO,CAAC,cAAc;QACnE,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ChatSession } from './session-manager.js';
|
|
2
|
-
export interface DebugSnapshot {
|
|
3
|
-
sessionId?: string;
|
|
4
|
-
messageCount: number;
|
|
5
|
-
lastUserMessage?: string;
|
|
6
|
-
notes: string[];
|
|
7
|
-
}
|
|
8
|
-
export declare function buildDebugSnapshot(session: ChatSession | null, notes?: string[]): DebugSnapshot;
|
|
9
|
-
//# sourceMappingURL=debug-workflow.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug-workflow.d.ts","sourceRoot":"","sources":["../../src/core/debug-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,aAAa,CAmBnG"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export function buildDebugSnapshot(session, notes = []) {
|
|
2
|
-
if (!session) {
|
|
3
|
-
return {
|
|
4
|
-
messageCount: 0,
|
|
5
|
-
notes: ['No active session found', ...notes].slice(0, 12),
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
const messages = session.messages || [];
|
|
9
|
-
const userMessages = messages.filter((msg) => msg.role === 'user');
|
|
10
|
-
const lastUser = userMessages[userMessages.length - 1];
|
|
11
|
-
const lastUserMessage = typeof lastUser?.content === 'string' ? lastUser.content : undefined;
|
|
12
|
-
return {
|
|
13
|
-
sessionId: session.id,
|
|
14
|
-
messageCount: messages.length,
|
|
15
|
-
lastUserMessage: lastUserMessage?.slice(0, 400),
|
|
16
|
-
notes: notes.slice(0, 12),
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=debug-workflow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug-workflow.js","sourceRoot":"","sources":["../../src/core/debug-workflow.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,kBAAkB,CAAC,OAA2B,EAAE,QAAkB,EAAE;IAClF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,YAAY,EAAE,CAAC;YACf,KAAK,EAAE,CAAC,yBAAyB,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,OAAO,QAAQ,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7F,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,eAAe,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QAC/C,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { ProviderType } from '../utils/config.js';
|
|
2
|
-
/**
|
|
3
|
-
* Fetch a URL and return both raw HTML and stripped text.
|
|
4
|
-
*/
|
|
5
|
-
export declare function fetchPage(url: string): Promise<{
|
|
6
|
-
html: string;
|
|
7
|
-
text: string;
|
|
8
|
-
ok: boolean;
|
|
9
|
-
}>;
|
|
10
|
-
/**
|
|
11
|
-
* Strip HTML to clean text, removing scripts, styles, nav, footer, header.
|
|
12
|
-
*/
|
|
13
|
-
export declare function stripHtml(html: string): string;
|
|
14
|
-
/**
|
|
15
|
-
* Extract internal links from HTML that share the same base URL path.
|
|
16
|
-
*/
|
|
17
|
-
export declare function extractLinks(html: string, baseUrl: string): string[];
|
|
18
|
-
export interface ScrapedPage {
|
|
19
|
-
url: string;
|
|
20
|
-
title: string;
|
|
21
|
-
content: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Crawl a docs site starting from a root URL.
|
|
25
|
-
* Follows internal links up to maxPages depth.
|
|
26
|
-
*/
|
|
27
|
-
export declare function crawlDocs(rootUrl: string, maxPages?: number, onProgress?: (msg: string) => void): Promise<ScrapedPage[]>;
|
|
28
|
-
/** AI synthesis config passed from SkillManager */
|
|
29
|
-
export interface AISynthesisConfig {
|
|
30
|
-
apiKey: string;
|
|
31
|
-
baseUrl?: string;
|
|
32
|
-
model?: string;
|
|
33
|
-
provider?: ProviderType;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Generate a skill markdown file from scraped documentation pages using AI synthesis.
|
|
37
|
-
* Supports both Anthropic (Claude) and OpenAI-compatible APIs (Grok, GPT, etc.)
|
|
38
|
-
*/
|
|
39
|
-
export declare function generateSkillFromDocs(name: string, rootUrl: string, pages: ScrapedPage[], config: AISynthesisConfig, onProgress?: (msg: string) => void): Promise<string>;
|
|
40
|
-
//# sourceMappingURL=docs-scraper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"docs-scraper.d.ts","sourceRoot":"","sources":["../../src/core/docs-scraper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAkBjG;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgB9C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAmCpE;AAED,MAAM,WAAW,WAAW;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAW,EACrB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,WAAW,EAAE,CAAC,CAoCxB;AAED,mDAAmD;AACnD,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,YAAY,CAAC;CAC3B;AA8MD;;;GAGG;AACH,wBAAsB,qBAAqB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,WAAW,EAAE,EACpB,MAAM,EAAE,iBAAiB,EACzB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC,MAAM,CAAC,CAsEjB"}
|
|
@@ -1,386 +0,0 @@
|
|
|
1
|
-
import fetch from 'node-fetch';
|
|
2
|
-
import Anthropic from '@anthropic-ai/sdk';
|
|
3
|
-
/**
|
|
4
|
-
* Fetch a URL and return both raw HTML and stripped text.
|
|
5
|
-
*/
|
|
6
|
-
export async function fetchPage(url) {
|
|
7
|
-
try {
|
|
8
|
-
const response = await fetch(url, {
|
|
9
|
-
headers: {
|
|
10
|
-
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
11
|
-
'Accept': 'text/html,application/xhtml+xml,text/plain',
|
|
12
|
-
},
|
|
13
|
-
signal: AbortSignal.timeout(15000),
|
|
14
|
-
});
|
|
15
|
-
if (!response.ok)
|
|
16
|
-
return { html: '', text: '', ok: false };
|
|
17
|
-
const html = await response.text();
|
|
18
|
-
const text = stripHtml(html);
|
|
19
|
-
return { html, text, ok: true };
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return { html: '', text: '', ok: false };
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Strip HTML to clean text, removing scripts, styles, nav, footer, header.
|
|
27
|
-
*/
|
|
28
|
-
export function stripHtml(html) {
|
|
29
|
-
return html
|
|
30
|
-
.replace(/<script[\s\S]*?<\/script>/gi, '')
|
|
31
|
-
.replace(/<style[\s\S]*?<\/style>/gi, '')
|
|
32
|
-
.replace(/<nav[\s\S]*?<\/nav>/gi, '')
|
|
33
|
-
.replace(/<footer[\s\S]*?<\/footer>/gi, '')
|
|
34
|
-
.replace(/<header[\s\S]*?<\/header>/gi, '')
|
|
35
|
-
.replace(/<[^>]+>/g, '\n')
|
|
36
|
-
.replace(/ /g, ' ')
|
|
37
|
-
.replace(/&/g, '&')
|
|
38
|
-
.replace(/</g, '<')
|
|
39
|
-
.replace(/>/g, '>')
|
|
40
|
-
.replace(/"/g, '"')
|
|
41
|
-
.replace(/'/g, "'")
|
|
42
|
-
.replace(/\n{3,}/g, '\n\n')
|
|
43
|
-
.trim();
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Extract internal links from HTML that share the same base URL path.
|
|
47
|
-
*/
|
|
48
|
-
export function extractLinks(html, baseUrl) {
|
|
49
|
-
const seen = new Set();
|
|
50
|
-
const parsed = new URL(baseUrl);
|
|
51
|
-
const basePath = parsed.pathname.replace(/\/$/, '');
|
|
52
|
-
const baseOrigin = parsed.origin;
|
|
53
|
-
// Match href attributes
|
|
54
|
-
const hrefRegex = /href=["']([^"'#]+)/gi;
|
|
55
|
-
let match;
|
|
56
|
-
while ((match = hrefRegex.exec(html)) !== null) {
|
|
57
|
-
let href = match[1].trim();
|
|
58
|
-
// Skip external resources, anchors, assets
|
|
59
|
-
if (href.startsWith('mailto:') || href.startsWith('javascript:') ||
|
|
60
|
-
href.startsWith('#') || href.match(/\.(css|js|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot|pdf|zip|tar|gz)$/i)) {
|
|
61
|
-
continue;
|
|
62
|
-
}
|
|
63
|
-
// Resolve relative URLs
|
|
64
|
-
try {
|
|
65
|
-
const resolved = new URL(href, baseUrl);
|
|
66
|
-
// Only keep same-origin links under the same base path
|
|
67
|
-
if (resolved.origin === baseOrigin && resolved.pathname.startsWith(basePath)) {
|
|
68
|
-
const clean = resolved.origin + resolved.pathname.replace(/\/$/, '');
|
|
69
|
-
if (!seen.has(clean) && clean !== baseUrl.replace(/\/$/, '')) {
|
|
70
|
-
seen.add(clean);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
catch {
|
|
75
|
-
// Invalid URL, skip
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return Array.from(seen);
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Crawl a docs site starting from a root URL.
|
|
82
|
-
* Follows internal links up to maxPages depth.
|
|
83
|
-
*/
|
|
84
|
-
export async function crawlDocs(rootUrl, maxPages = 25, onProgress) {
|
|
85
|
-
const pages = [];
|
|
86
|
-
const visited = new Set();
|
|
87
|
-
const queue = [rootUrl];
|
|
88
|
-
while (queue.length > 0 && pages.length < maxPages) {
|
|
89
|
-
const url = queue.shift();
|
|
90
|
-
const cleanUrl = url.replace(/\/$/, '');
|
|
91
|
-
if (visited.has(cleanUrl))
|
|
92
|
-
continue;
|
|
93
|
-
visited.add(cleanUrl);
|
|
94
|
-
onProgress?.(`Fetching (${pages.length + 1}/${maxPages} max): ${cleanUrl}`);
|
|
95
|
-
const { html, text, ok } = await fetchPage(cleanUrl);
|
|
96
|
-
if (!ok || !text || text.length < 50)
|
|
97
|
-
continue;
|
|
98
|
-
// Extract title from <title> tag
|
|
99
|
-
const titleMatch = html.match(/<title[^>]*>([\s\S]*?)<\/title>/i);
|
|
100
|
-
const title = titleMatch
|
|
101
|
-
? titleMatch[1].replace(/\s+/g, ' ').trim()
|
|
102
|
-
: cleanUrl.split('/').pop() || 'Untitled';
|
|
103
|
-
// Keep only meaningful content (skip if too short)
|
|
104
|
-
const trimmedContent = text.slice(0, 8000); // cap per page
|
|
105
|
-
pages.push({ url: cleanUrl, title, content: trimmedContent });
|
|
106
|
-
// Find more links on this page
|
|
107
|
-
const links = extractLinks(html, rootUrl);
|
|
108
|
-
for (const link of links) {
|
|
109
|
-
if (!visited.has(link.replace(/\/$/, ''))) {
|
|
110
|
-
queue.push(link);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return pages;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Build the synthesis prompt from scraped pages.
|
|
118
|
-
*/
|
|
119
|
-
function buildSynthesisPrompt(name, rootUrl, pages) {
|
|
120
|
-
// Cap total content to ~60K chars to fit in context window
|
|
121
|
-
let totalChars = 0;
|
|
122
|
-
const maxTotalChars = 60_000;
|
|
123
|
-
const pageSummaries = [];
|
|
124
|
-
for (const page of pages) {
|
|
125
|
-
if (totalChars >= maxTotalChars)
|
|
126
|
-
break;
|
|
127
|
-
const available = maxTotalChars - totalChars;
|
|
128
|
-
const content = page.content.length > available ? page.content.slice(0, available) : page.content;
|
|
129
|
-
pageSummaries.push(`### ${page.title}\nSource: ${page.url}\n\n${content}`);
|
|
130
|
-
totalChars += content.length;
|
|
131
|
-
}
|
|
132
|
-
const docsContent = pageSummaries.join('\n\n---\n\n');
|
|
133
|
-
return `You are an expert Senior Software Engineer and Technical Writer. I have scraped ${pages.length} pages from the documentation at ${rootUrl}.
|
|
134
|
-
|
|
135
|
-
Your task is to create a **"Gold Standard" Skill File** for an AI coding assistant. This file will be used by the AI to understand how to write perfect code using "${name}".
|
|
136
|
-
|
|
137
|
-
### Goal
|
|
138
|
-
The output must be a comprehensive, high-density technical guide. It should not just list APIs, but explain **how to think** about the technology, **common patterns**, **pitfalls**, and **best practices**.
|
|
139
|
-
|
|
140
|
-
### Structure Requirements
|
|
141
|
-
|
|
142
|
-
1. **YAML Frontmatter**:
|
|
143
|
-
- \`description\`: A concise, high-level summary.
|
|
144
|
-
- \`tags\`: Relevant technical tags (comma-separated).
|
|
145
|
-
- \`source\`: ${rootUrl}
|
|
146
|
-
|
|
147
|
-
2. **Role & Persona**:
|
|
148
|
-
- Start with "You are an expert [Technology] developer..."
|
|
149
|
-
- Define the mindset and goals (e.g. "Write clean, modern, type-safe code").
|
|
150
|
-
|
|
151
|
-
3. **Overview**:
|
|
152
|
-
- What problem does this solve?
|
|
153
|
-
- When should you use it?
|
|
154
|
-
- What are the core philosophies?
|
|
155
|
-
|
|
156
|
-
3. **Critical Concepts (Mental Models)**:
|
|
157
|
-
- Deeply explain the *why* and *how*.
|
|
158
|
-
- Use analogies if helpful.
|
|
159
|
-
- Explain the lifecycle, data flow, or architecture.
|
|
160
|
-
|
|
161
|
-
4. **Installation & Setup** (Brief):
|
|
162
|
-
- Standard installation commands.
|
|
163
|
-
- Essential configuration.
|
|
164
|
-
|
|
165
|
-
5. **Common Patterns & "The Right Way"**:
|
|
166
|
-
- **CRITICAL**: Show code examples of how to do things *correctly* in a modern context.
|
|
167
|
-
- Contrast "Old Way" vs "New Way" if applicable (e.g., Options API vs Composition API).
|
|
168
|
-
- Show how to integrate with the broader ecosystem.
|
|
169
|
-
|
|
170
|
-
6. **Gotchas & Anti-Patterns**:
|
|
171
|
-
- What mistakes do developers commonly make?
|
|
172
|
-
- What has performance implications?
|
|
173
|
-
- Security concerns?
|
|
174
|
-
|
|
175
|
-
7. **API Reference (High-Frequency)**:
|
|
176
|
-
- Don't list everything. List the 20% of APIs used 80% of the time.
|
|
177
|
-
- Include type signatures if relevant.
|
|
178
|
-
|
|
179
|
-
### Style Guidelines
|
|
180
|
-
- **Tone**: Authoritative, technical, concise, and helpful.
|
|
181
|
-
- **Format**: Clean Markdown. Use bolding for emphasis.
|
|
182
|
-
- **Code**: All code patterns MUST be valid and idiomatic. Use comments to explain complex lines.
|
|
183
|
-
- **No Fluff**: Remove intro/outro chatter. meaningful content only.
|
|
184
|
-
- **No raw HTML**: Strict Markdown only.
|
|
185
|
-
|
|
186
|
-
### Source Documentation Content:
|
|
187
|
-
|
|
188
|
-
${docsContent}`;
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Call an OpenAI-compatible API (works with Grok, OpenAI, etc.)
|
|
192
|
-
*/
|
|
193
|
-
async function synthesizeWithOpenAI(prompt, config) {
|
|
194
|
-
let base = (config.baseUrl || 'https://api.openai.com').replace(/\/+$/, '');
|
|
195
|
-
let url;
|
|
196
|
-
if (base.endsWith('/v1')) {
|
|
197
|
-
url = `${base}/chat/completions`;
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
url = `${base}/v1/chat/completions`;
|
|
201
|
-
}
|
|
202
|
-
const response = await fetch(url, {
|
|
203
|
-
method: 'POST',
|
|
204
|
-
headers: {
|
|
205
|
-
'Content-Type': 'application/json',
|
|
206
|
-
'Authorization': `Bearer ${config.apiKey}`,
|
|
207
|
-
},
|
|
208
|
-
body: JSON.stringify({
|
|
209
|
-
model: config.model || 'gpt-4',
|
|
210
|
-
messages: [
|
|
211
|
-
{ role: 'user', content: prompt },
|
|
212
|
-
],
|
|
213
|
-
max_tokens: 8192,
|
|
214
|
-
temperature: 0.3,
|
|
215
|
-
}),
|
|
216
|
-
});
|
|
217
|
-
if (!response.ok) {
|
|
218
|
-
const text = await response.text();
|
|
219
|
-
throw new Error(`${response.status} ${text.slice(0, 200)}`);
|
|
220
|
-
}
|
|
221
|
-
const data = await response.json();
|
|
222
|
-
const content = data?.choices?.[0]?.message?.content;
|
|
223
|
-
if (!content) {
|
|
224
|
-
throw new Error('No content in OpenAI response');
|
|
225
|
-
}
|
|
226
|
-
return content;
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Call the Anthropic API (Claude models)
|
|
230
|
-
*/
|
|
231
|
-
async function synthesizeWithAnthropic(prompt, config) {
|
|
232
|
-
const clientConfig = { apiKey: config.apiKey };
|
|
233
|
-
if (config.baseUrl)
|
|
234
|
-
clientConfig.baseURL = config.baseUrl;
|
|
235
|
-
const client = new Anthropic(clientConfig);
|
|
236
|
-
const response = await client.messages.create({
|
|
237
|
-
model: config.model || 'claude-sonnet-4-20250514',
|
|
238
|
-
max_tokens: 8192,
|
|
239
|
-
temperature: 0.3,
|
|
240
|
-
messages: [{ role: 'user', content: prompt }],
|
|
241
|
-
});
|
|
242
|
-
const textBlock = response.content.find(b => b.type === 'text');
|
|
243
|
-
if (!textBlock || textBlock.type !== 'text') {
|
|
244
|
-
throw new Error('No text response from AI');
|
|
245
|
-
}
|
|
246
|
-
return textBlock.text;
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Detect provider from model name (same heuristic as agent.ts)
|
|
250
|
-
*/
|
|
251
|
-
function detectProvider(model) {
|
|
252
|
-
if (!model)
|
|
253
|
-
return 'anthropic';
|
|
254
|
-
const m = model.toLowerCase();
|
|
255
|
-
// Claude models → Anthropic
|
|
256
|
-
if (m.includes('claude'))
|
|
257
|
-
return 'anthropic';
|
|
258
|
-
// GPT, O1, O3, Grok, and other non-Claude models → OpenAI-compatible
|
|
259
|
-
if (m.startsWith('gpt-') || m.startsWith('gpt4') || m.startsWith('o1-') || m.startsWith('o3-') || m.includes('grok'))
|
|
260
|
-
return 'openai';
|
|
261
|
-
if (m.startsWith('deepseek'))
|
|
262
|
-
return 'deepseek';
|
|
263
|
-
if (m.startsWith('glm') || m.includes('glm-'))
|
|
264
|
-
return 'zai';
|
|
265
|
-
if (m.startsWith('moonshot') || m.startsWith('kimi'))
|
|
266
|
-
return 'kimi';
|
|
267
|
-
if (m.includes('/'))
|
|
268
|
-
return 'openrouter';
|
|
269
|
-
// Default to OpenAI format for unknown models (most custom endpoints use it)
|
|
270
|
-
return 'openai';
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Summarize a chunk of documentation pages to extract key technical details.
|
|
274
|
-
* Usage: "Map" step in Map-Reduce.
|
|
275
|
-
*/
|
|
276
|
-
async function summarizeChunk(chunkTitle, pages, config, onProgress) {
|
|
277
|
-
const combinedContent = pages.map(p => `### ${p.title}\nURL: ${p.url}\n\n${p.content}`).join('\n\n');
|
|
278
|
-
const prompt = `You are a technical documentation summarizer.
|
|
279
|
-
I have combined text from ${pages.length} documentation pages about "${chunkTitle}".
|
|
280
|
-
|
|
281
|
-
Your task is to extract the **key technical patterns, code snippets, and concepts** from this text.
|
|
282
|
-
Do NOT summarize generically. Extract specific:
|
|
283
|
-
- Code examples (keep them intact)
|
|
284
|
-
- Configuration options
|
|
285
|
-
- API signatures
|
|
286
|
-
- Best practices
|
|
287
|
-
- Gotchas
|
|
288
|
-
|
|
289
|
-
Output a dense technical summary in Markdown format.
|
|
290
|
-
|
|
291
|
-
Content:
|
|
292
|
-
${combinedContent.slice(0, 50000)}`;
|
|
293
|
-
const provider = config.provider || detectProvider(config.model);
|
|
294
|
-
try {
|
|
295
|
-
if (provider === 'anthropic') {
|
|
296
|
-
return await synthesizeWithAnthropic(prompt, config);
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
return await synthesizeWithOpenAI(prompt, config);
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
catch (e) {
|
|
303
|
-
onProgress?.(`Chunk summarization failed: ${e.message}, using raw content`);
|
|
304
|
-
return combinedContent.slice(0, 10000); // Fallback
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
/**
|
|
308
|
-
* Generate a skill markdown file from scraped documentation pages using AI synthesis.
|
|
309
|
-
* Supports both Anthropic (Claude) and OpenAI-compatible APIs (Grok, GPT, etc.)
|
|
310
|
-
*/
|
|
311
|
-
export async function generateSkillFromDocs(name, rootUrl, pages, config, onProgress) {
|
|
312
|
-
onProgress?.('Synthesizing skill with AI...');
|
|
313
|
-
let processedPages = pages;
|
|
314
|
-
// Map-Reduce for large doc sets
|
|
315
|
-
if (pages.length > 10) {
|
|
316
|
-
onProgress?.(`Large doc set detected (${pages.length} pages). Running multi-stage synthesis...`);
|
|
317
|
-
const chunkSize = 10;
|
|
318
|
-
const chunks = [];
|
|
319
|
-
for (let i = 0; i < pages.length; i += chunkSize) {
|
|
320
|
-
chunks.push(pages.slice(i, i + chunkSize));
|
|
321
|
-
}
|
|
322
|
-
const summaries = [];
|
|
323
|
-
for (let i = 0; i < chunks.length; i++) {
|
|
324
|
-
const chunk = chunks[i];
|
|
325
|
-
onProgress?.(`Summarizing part ${i + 1}/${chunks.length}...`);
|
|
326
|
-
const summary = await summarizeChunk(`${name} Part ${i + 1}`, chunk, config, onProgress);
|
|
327
|
-
summaries.push({
|
|
328
|
-
url: rootUrl,
|
|
329
|
-
title: `Summary Part ${i + 1}`,
|
|
330
|
-
content: summary
|
|
331
|
-
});
|
|
332
|
-
}
|
|
333
|
-
processedPages = summaries;
|
|
334
|
-
}
|
|
335
|
-
const prompt = buildSynthesisPrompt(name, rootUrl, processedPages);
|
|
336
|
-
// Determine which API to use
|
|
337
|
-
const provider = config.provider || detectProvider(config.model);
|
|
338
|
-
try {
|
|
339
|
-
let skillContent;
|
|
340
|
-
if (provider === 'anthropic') {
|
|
341
|
-
onProgress?.(`Using Anthropic API (${config.model || 'claude-sonnet-4-20250514'})...`);
|
|
342
|
-
skillContent = await synthesizeWithAnthropic(prompt, config);
|
|
343
|
-
}
|
|
344
|
-
else {
|
|
345
|
-
// All others use OpenAI-compatible
|
|
346
|
-
onProgress?.(`Using ${provider === 'openai' ? 'OpenAI' : provider}-compatible API...`);
|
|
347
|
-
skillContent = await synthesizeWithOpenAI(prompt, config);
|
|
348
|
-
}
|
|
349
|
-
skillContent = skillContent.trim();
|
|
350
|
-
// Strip any <think> tags (some models use these)
|
|
351
|
-
skillContent = skillContent.replace(/<think>[\s\S]*?<\/think>/g, '').trim();
|
|
352
|
-
// If AI returned content inside markdown code block, extract it
|
|
353
|
-
const codeBlockMatch = skillContent.match(/^```(?:markdown|md)?\n([\s\S]*?)```$/);
|
|
354
|
-
if (codeBlockMatch) {
|
|
355
|
-
skillContent = codeBlockMatch[1].trim();
|
|
356
|
-
}
|
|
357
|
-
// Ensure it has frontmatter
|
|
358
|
-
if (!skillContent.startsWith('---')) {
|
|
359
|
-
skillContent = `---\ndescription: ${name} development guide\ntags: ${name}, docs, learned\nsource: ${rootUrl}\n---\n\n${skillContent}`;
|
|
360
|
-
}
|
|
361
|
-
onProgress?.('AI synthesis complete');
|
|
362
|
-
return skillContent;
|
|
363
|
-
}
|
|
364
|
-
catch (error) {
|
|
365
|
-
onProgress?.(`AI synthesis failed: ${error.message}. Falling back to basic formatting.`);
|
|
366
|
-
// Fallback: create a basic structured file without AI
|
|
367
|
-
return generateBasicSkill(name, rootUrl, pages);
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
/**
|
|
371
|
-
* Fallback: Generate a basic skill file without AI (used when API call fails)
|
|
372
|
-
*/
|
|
373
|
-
function generateBasicSkill(name, rootUrl, pages) {
|
|
374
|
-
const tags = ['learned', 'docs', name];
|
|
375
|
-
let content = `---\ndescription: Skill learned from ${rootUrl} — ${pages.length} pages scraped\ntags: ${tags.join(', ')}\nsource: ${rootUrl}\n---\n\n`;
|
|
376
|
-
content += `# ${name}\n\n`;
|
|
377
|
-
content += `> Learned from [${rootUrl}](${rootUrl}) — ${pages.length} pages\n\n`;
|
|
378
|
-
for (const page of pages) {
|
|
379
|
-
content += `## ${page.title}\n\n`;
|
|
380
|
-
content += `> Source: ${page.url}\n\n`;
|
|
381
|
-
const section = page.content.length > 4000 ? page.content.slice(0, 4000) + '\n\n...(truncated)' : page.content;
|
|
382
|
-
content += section + '\n\n---\n\n';
|
|
383
|
-
}
|
|
384
|
-
return content;
|
|
385
|
-
}
|
|
386
|
-
//# sourceMappingURL=docs-scraper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"docs-scraper.js","sourceRoot":"","sources":["../../src/core/docs-scraper.ts"],"names":[],"mappings":"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"}
|
package/dist/core/editor.d.ts
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
export interface EditResult {
|
|
2
|
-
success: boolean;
|
|
3
|
-
message: string;
|
|
4
|
-
diff?: string;
|
|
5
|
-
linesChanged?: number;
|
|
6
|
-
}
|
|
7
|
-
export interface SearchReplaceEdit {
|
|
8
|
-
search: string;
|
|
9
|
-
replace: string;
|
|
10
|
-
all?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface LineRangeEdit {
|
|
13
|
-
startLine: number;
|
|
14
|
-
endLine: number;
|
|
15
|
-
newContent: string;
|
|
16
|
-
}
|
|
17
|
-
export interface VerifiedEdit {
|
|
18
|
-
startLine: number;
|
|
19
|
-
endLine: number;
|
|
20
|
-
oldContent: string;
|
|
21
|
-
newContent: string;
|
|
22
|
-
}
|
|
23
|
-
export declare class FileEditor {
|
|
24
|
-
private workingDir;
|
|
25
|
-
private backupDir;
|
|
26
|
-
constructor(workingDir: string);
|
|
27
|
-
/**
|
|
28
|
-
* Resolve filePath under workingDir (same rules as read_file / write_file).
|
|
29
|
-
* Rejects absolute paths outside the working directory (e.g. hallucinated /workspace/...).
|
|
30
|
-
*/
|
|
31
|
-
private resolveSafePath;
|
|
32
|
-
/**
|
|
33
|
-
* Smart edit - searches for unique section and replaces it
|
|
34
|
-
* This is the most reliable way to edit files
|
|
35
|
-
*/
|
|
36
|
-
smartEdit(filePath: string, edit: SearchReplaceEdit): Promise<EditResult>;
|
|
37
|
-
/**
|
|
38
|
-
* Edit specific line range - good for large files
|
|
39
|
-
*/
|
|
40
|
-
editLineRange(filePath: string, edit: LineRangeEdit): Promise<EditResult>;
|
|
41
|
-
/**
|
|
42
|
-
* Verified edit - requires old content to match before replacing.
|
|
43
|
-
* This is the most reliable editing method as it prevents hallucinated edits.
|
|
44
|
-
* If the old content doesn't match, returns the actual content so the AI can self-correct.
|
|
45
|
-
*/
|
|
46
|
-
verifiedEdit(filePath: string, edit: VerifiedEdit): Promise<EditResult & {
|
|
47
|
-
actual_content?: string;
|
|
48
|
-
}>;
|
|
49
|
-
/**
|
|
50
|
-
* Insert content at specific line
|
|
51
|
-
*/
|
|
52
|
-
insertAtLine(filePath: string, line: number, content: string): Promise<EditResult>;
|
|
53
|
-
/**
|
|
54
|
-
* Apply unified diff patch
|
|
55
|
-
*/
|
|
56
|
-
applyPatch(filePath: string, patch: string): Promise<EditResult>;
|
|
57
|
-
/**
|
|
58
|
-
* Revert file to backup
|
|
59
|
-
*/
|
|
60
|
-
revertToBackup(filePath: string, backupIndex?: number): Promise<EditResult>;
|
|
61
|
-
/**
|
|
62
|
-
* Create backup of file
|
|
63
|
-
*/
|
|
64
|
-
private createBackup;
|
|
65
|
-
/**
|
|
66
|
-
* List backups for a file
|
|
67
|
-
*/
|
|
68
|
-
private listBackups;
|
|
69
|
-
/**
|
|
70
|
-
* Count changed lines in diff
|
|
71
|
-
*/
|
|
72
|
-
private countChangedLines;
|
|
73
|
-
/**
|
|
74
|
-
* Escape special regex characters
|
|
75
|
-
*/
|
|
76
|
-
private escapeRegex;
|
|
77
|
-
/**
|
|
78
|
-
* Get file info for display
|
|
79
|
-
*/
|
|
80
|
-
getFileInfo(filePath: string): Promise<{
|
|
81
|
-
exists: boolean;
|
|
82
|
-
lines?: number;
|
|
83
|
-
size?: number;
|
|
84
|
-
preview?: string;
|
|
85
|
-
}>;
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=editor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/core/editor.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,UAAU,EAAE,MAAM;IAK9B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAWvB;;;OAGG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAyD/E;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAkD/E;;;;OAIG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0E3G;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyCxF;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA+CtE;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,MAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAyCpF;;OAEG;YACW,YAAY;IAU1B;;OAEG;YACW,WAAW;IAoBzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3C,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CAyBH"}
|