@mc1global/opencode-jarvis 0.3.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/QUICK-GUIDE.md +53 -0
  2. package/README.md +308 -89
  3. package/dist/application/azure-sync/index.d.ts +2 -0
  4. package/dist/application/azure-sync/index.d.ts.map +1 -1
  5. package/dist/application/azure-sync/index.js +1 -0
  6. package/dist/application/azure-sync/index.js.map +1 -1
  7. package/dist/application/azure-sync/poll-service.d.ts +94 -0
  8. package/dist/application/azure-sync/poll-service.d.ts.map +1 -0
  9. package/dist/application/azure-sync/poll-service.js +227 -0
  10. package/dist/application/azure-sync/poll-service.js.map +1 -0
  11. package/dist/application/bootstrap/healthcheck-use-cases.d.ts +68 -0
  12. package/dist/application/bootstrap/healthcheck-use-cases.d.ts.map +1 -0
  13. package/dist/application/bootstrap/healthcheck-use-cases.js +303 -0
  14. package/dist/application/bootstrap/healthcheck-use-cases.js.map +1 -0
  15. package/dist/application/bootstrap/index.d.ts +10 -0
  16. package/dist/application/bootstrap/index.d.ts.map +1 -0
  17. package/dist/application/bootstrap/index.js +8 -0
  18. package/dist/application/bootstrap/index.js.map +1 -0
  19. package/dist/application/bootstrap/use-cases.d.ts +55 -0
  20. package/dist/application/bootstrap/use-cases.d.ts.map +1 -0
  21. package/dist/application/bootstrap/use-cases.js +355 -0
  22. package/dist/application/bootstrap/use-cases.js.map +1 -0
  23. package/dist/application/rag/dtos.d.ts +6 -0
  24. package/dist/application/rag/dtos.d.ts.map +1 -1
  25. package/dist/application/rag/use-cases.d.ts +9 -1
  26. package/dist/application/rag/use-cases.d.ts.map +1 -1
  27. package/dist/application/rag/use-cases.js +121 -56
  28. package/dist/application/rag/use-cases.js.map +1 -1
  29. package/dist/domain/azure-sync/entities.d.ts +59 -2
  30. package/dist/domain/azure-sync/entities.d.ts.map +1 -1
  31. package/dist/domain/azure-sync/entities.js +59 -0
  32. package/dist/domain/azure-sync/entities.js.map +1 -1
  33. package/dist/domain/azure-sync/index.d.ts +5 -5
  34. package/dist/domain/azure-sync/index.d.ts.map +1 -1
  35. package/dist/domain/azure-sync/index.js +2 -2
  36. package/dist/domain/azure-sync/index.js.map +1 -1
  37. package/dist/domain/azure-sync/ports.d.ts +2 -0
  38. package/dist/domain/azure-sync/ports.d.ts.map +1 -1
  39. package/dist/domain/azure-sync/repositories.d.ts +22 -2
  40. package/dist/domain/azure-sync/repositories.d.ts.map +1 -1
  41. package/dist/domain/azure-sync/value-objects.d.ts +12 -0
  42. package/dist/domain/azure-sync/value-objects.d.ts.map +1 -1
  43. package/dist/domain/azure-sync/value-objects.js +21 -0
  44. package/dist/domain/azure-sync/value-objects.js.map +1 -1
  45. package/dist/domain/config/value-objects.d.ts +4 -0
  46. package/dist/domain/config/value-objects.d.ts.map +1 -1
  47. package/dist/domain/config/value-objects.js +2 -0
  48. package/dist/domain/config/value-objects.js.map +1 -1
  49. package/dist/domain/rag/repositories.d.ts +42 -0
  50. package/dist/domain/rag/repositories.d.ts.map +1 -1
  51. package/dist/domain/rag/services.d.ts +10 -0
  52. package/dist/domain/rag/services.d.ts.map +1 -1
  53. package/dist/domain/rag/services.js +38 -0
  54. package/dist/domain/rag/services.js.map +1 -1
  55. package/dist/hooks/first-run-guide.d.ts +33 -0
  56. package/dist/hooks/first-run-guide.d.ts.map +1 -0
  57. package/dist/hooks/first-run-guide.js +58 -0
  58. package/dist/hooks/first-run-guide.js.map +1 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +76 -27
  61. package/dist/index.js.map +1 -1
  62. package/dist/infrastructure/azure-sync/azure-devops-client.d.ts +1 -0
  63. package/dist/infrastructure/azure-sync/azure-devops-client.d.ts.map +1 -1
  64. package/dist/infrastructure/azure-sync/azure-devops-client.js +11 -13
  65. package/dist/infrastructure/azure-sync/azure-devops-client.js.map +1 -1
  66. package/dist/infrastructure/azure-sync/index.d.ts +1 -0
  67. package/dist/infrastructure/azure-sync/index.d.ts.map +1 -1
  68. package/dist/infrastructure/azure-sync/index.js +2 -1
  69. package/dist/infrastructure/azure-sync/index.js.map +1 -1
  70. package/dist/infrastructure/azure-sync/sqlite-event-repository.d.ts +31 -0
  71. package/dist/infrastructure/azure-sync/sqlite-event-repository.d.ts.map +1 -0
  72. package/dist/infrastructure/azure-sync/sqlite-event-repository.js +105 -0
  73. package/dist/infrastructure/azure-sync/sqlite-event-repository.js.map +1 -0
  74. package/dist/infrastructure/rag/file-discovery.d.ts.map +1 -1
  75. package/dist/infrastructure/rag/file-discovery.js +1 -0
  76. package/dist/infrastructure/rag/file-discovery.js.map +1 -1
  77. package/dist/infrastructure/rag/file-index-registry.d.ts +18 -0
  78. package/dist/infrastructure/rag/file-index-registry.d.ts.map +1 -0
  79. package/dist/infrastructure/rag/file-index-registry.js +67 -0
  80. package/dist/infrastructure/rag/file-index-registry.js.map +1 -0
  81. package/dist/mcp-server.js +68 -2
  82. package/dist/mcp-server.js.map +1 -1
  83. package/dist/tools/azure-sync-event-tools.d.ts +13 -0
  84. package/dist/tools/azure-sync-event-tools.d.ts.map +1 -0
  85. package/dist/tools/azure-sync-event-tools.js +100 -0
  86. package/dist/tools/azure-sync-event-tools.js.map +1 -0
  87. package/dist/tools/bootstrap-tools.d.ts +15 -0
  88. package/dist/tools/bootstrap-tools.d.ts.map +1 -0
  89. package/dist/tools/bootstrap-tools.js +113 -0
  90. package/dist/tools/bootstrap-tools.js.map +1 -0
  91. package/dist/tools/rag-tools.d.ts.map +1 -1
  92. package/dist/tools/rag-tools.js +9 -2
  93. package/dist/tools/rag-tools.js.map +1 -1
  94. package/package.json +3 -2
@@ -23,6 +23,18 @@ export declare class SyncLogId extends EntityId {
23
23
  static from(value: string): SyncLogId;
24
24
  get sequence(): number;
25
25
  }
26
+ /** Sync event identifier (format: SE-NNN). */
27
+ export declare class SyncEventId extends EntityId {
28
+ private constructor();
29
+ static create(sequence: number): SyncEventId;
30
+ static from(value: string): SyncEventId;
31
+ }
32
+ /** Types of changes detected during polling. */
33
+ export type SyncEventType = "field_change" | "state_change" | "comment_added" | "revision_bump";
34
+ /** Sync event processing status. */
35
+ export type SyncEventStatus = "pending" | "acknowledged" | "dismissed";
36
+ export declare const SYNC_EVENT_TYPES: readonly SyncEventType[];
37
+ export declare const SYNC_EVENT_STATUSES: readonly SyncEventStatus[];
26
38
  /**
27
39
  * Validated Azure DevOps organization URL.
28
40
  * Accepts formats:
@@ -1 +1 @@
1
- {"version":3,"file":"value-objects.d.ts","sourceRoot":"","sources":["../../../src/domain/azure-sync/value-objects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"value-objects.d.ts","sourceRoot":"","sources":["../../../src/domain/azure-sync/value-objects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAItD,gDAAgD;AAChD,qBAAa,aAAc,SAAQ,QAAQ;IACzC,OAAO;IAIP,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa;IAO9C,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa;IAIzC,IAAI,QAAQ,IAAI,MAAM,CAGrB;CACF;AAED,kDAAkD;AAClD,qBAAa,SAAU,SAAQ,QAAQ;IACrC,OAAO;IAIP,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAO1C,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS;IAIrC,IAAI,QAAQ,IAAI,MAAM,CAGrB;CACF;AAED,8CAA8C;AAC9C,qBAAa,WAAY,SAAQ,QAAQ;IACvC,OAAO;IAIP,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAO5C,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;CAGxC;AAED,gDAAgD;AAChD,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,eAAe,CAAC;AAEhG,oCAAoC;AACpC,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,GAAG,WAAW,CAAC;AAEvE,eAAO,MAAM,gBAAgB,EAAE,SAAS,aAAa,EAE3C,CAAC;AAEX,eAAO,MAAM,mBAAmB,EAAE,SAAS,eAAe,EAEhD,CAAC;AAIX;;;;;GAKG;AACH,qBAAa,WAAW;aAMc,KAAK,EAAE,MAAM;IALjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CACqB;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAC4B;IAEhE,OAAO;IAEP,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAgBvC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAIvC,kDAAkD;IAClD,IAAI,OAAO,IAAI,MAAM,CAQpB;IAED,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAInC,QAAQ,IAAI,MAAM;CAGnB;AAID;;;GAGG;AACH,qBAAa,UAAU;aACe,KAAK,EAAE,MAAM;IAAjD,OAAO;IAEP,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU;IAOrC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAItC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAIlC,QAAQ,IAAI,MAAM;CAGnB;AAID,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,8CAA+C,CAAC;AAE9E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,eAAe,CAE1B;AAID,iEAAiE;AACjE,eAAO,MAAM,eAAe,2GASlB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,eAAe,EACf,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAM7B,CAAC;AAIF,eAAO,MAAM,eAAe,4CAIlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,aAAa,CAExB;AAID,eAAO,MAAM,aAAa,8DAMhB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAEpE;AAID,0DAA0D;AAC1D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAKnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,2FAStB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CACvC,eAAe,EACf,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CA0CjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CACvC,eAAe,EACf,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAyBjC,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAKtF,CAAC;AAIF;;;;GAIG;AACH,qBAAa,YAAY;aAEL,UAAU,EAAE,MAAM;aAClB,UAAU,EAAE,MAAM;aAClB,QAAQ,EAAE,aAAa;IAHzC,OAAO;IAMP,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,aAAsB,GAC/B,YAAY;IAUf,MAAM,CAAC,IAAI,CACT,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,aAAa,GACtB,YAAY;IAIf,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAQpC,QAAQ,IAAI,MAAM;CAGnB;AAED,oFAAoF;AACpF,eAAO,MAAM,eAAe,iDAKlB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,aAAa,CAExB;AAID,kEAAkE;AAClE,eAAO,MAAM,YAAY,4BAA6B,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAEpE;AAID,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,6CAKrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,GACZ,KAAK,IAAI,eAAe,CAE1B"}
@@ -48,6 +48,27 @@ export class SyncLogId extends EntityId {
48
48
  return parseInt(parts[1] ?? "0", 10);
49
49
  }
50
50
  }
51
+ /** Sync event identifier (format: SE-NNN). */
52
+ export class SyncEventId extends EntityId {
53
+ constructor(value) {
54
+ super(value);
55
+ }
56
+ static create(sequence) {
57
+ if (!Number.isInteger(sequence) || sequence < 1) {
58
+ throw new Error("SyncEventId: sequence must be a positive integer");
59
+ }
60
+ return new SyncEventId(`SE-${String(sequence).padStart(3, "0")}`);
61
+ }
62
+ static from(value) {
63
+ return new SyncEventId(value);
64
+ }
65
+ }
66
+ export const SYNC_EVENT_TYPES = [
67
+ "field_change", "state_change", "comment_added", "revision_bump",
68
+ ];
69
+ export const SYNC_EVENT_STATUSES = [
70
+ "pending", "acknowledged", "dismissed",
71
+ ];
51
72
  // ─── Azure DevOps Organization URL ───────────────────────────────────────────
52
73
  /**
53
74
  * Validated Azure DevOps organization URL.
@@ -1 +1 @@
1
- {"version":3,"file":"value-objects.js","sourceRoot":"","sources":["../../../src/domain/azure-sync/value-objects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"value-objects.js","sourceRoot":"","sources":["../../../src/domain/azure-sync/value-objects.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,10 @@ export interface AzureSyncConfig {
48
48
  readonly authMethod: "az-cli" | "pat";
49
49
  readonly defaultSyncDirection: "push" | "pull" | "bidirectional";
50
50
  readonly autoDetectTemplate: boolean;
51
+ /** Enable background polling for Azure DevOps changes. */
52
+ readonly pollEnabled: boolean;
53
+ /** Poll interval in seconds (minimum 30, default 60). */
54
+ readonly pollIntervalSecs: number;
51
55
  }
52
56
  /** MCP Server bounded context configuration. */
53
57
  export interface McpServerConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"value-objects.d.ts","sourceRoot":"","sources":["../../../src/domain/config/value-objects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"value-objects.d.ts","sourceRoot":"","sources":["../../../src/domain/config/value-objects.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,8 @@ export const DEFAULT_AZURE_SYNC_CONFIG = {
53
53
  authMethod: "az-cli",
54
54
  defaultSyncDirection: "push",
55
55
  autoDetectTemplate: true,
56
+ pollEnabled: false,
57
+ pollIntervalSecs: 60,
56
58
  };
57
59
  /** Default MCP Server configuration. */
58
60
  export const DEFAULT_MCP_SERVER_CONFIG = {
@@ -1 +1 @@
1
- {"version":3,"file":"value-objects.js","sourceRoot":"","sources":["../../../src/domain/config/value-objects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"value-objects.js","sourceRoot":"","sources":["../../../src/domain/config/value-objects.ts"],"names":[],"mappings":"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"}
@@ -116,6 +116,8 @@ export interface DiscoveredFile {
116
116
  readonly relativePath: string;
117
117
  readonly extension: string;
118
118
  readonly sizeBytes: number;
119
+ /** File modification time in milliseconds since epoch. */
120
+ readonly mtimeMs: number;
119
121
  }
120
122
  /** Result of project analysis. */
121
123
  export interface ProjectAnalysis {
@@ -149,4 +151,44 @@ export interface FileDiscoveryPort {
149
151
  */
150
152
  createRagignore(directory: string, projectType: string): Promise<void>;
151
153
  }
154
+ /**
155
+ * A record of a previously indexed file.
156
+ * Persisted by the registry to track what was indexed and when.
157
+ */
158
+ export interface FileIndexRecord {
159
+ /** Relative path of the source file (stable across re-indexing). */
160
+ readonly relativePath: string;
161
+ /** Absolute path at last index time. */
162
+ readonly absolutePath: string;
163
+ /** File modification time (ms since epoch) at last index time. */
164
+ readonly mtimeMs: number;
165
+ /** Number of chunks created for this file. */
166
+ readonly chunkCount: number;
167
+ }
168
+ /**
169
+ * Result of computing the delta between discovered files and indexed files.
170
+ */
171
+ export interface IndexDelta {
172
+ /** Files not in the registry — need full indexing. */
173
+ readonly toAdd: readonly DiscoveredFile[];
174
+ /** Files in the registry but with a newer mtime — need re-indexing. */
175
+ readonly toUpdate: readonly DiscoveredFile[];
176
+ /** Relative paths in the registry but no longer on disk — need removal. */
177
+ readonly toRemove: readonly string[];
178
+ /** Files in the registry with matching mtime — skip. */
179
+ readonly unchanged: readonly string[];
180
+ }
181
+ /**
182
+ * Port for persisting the file index registry.
183
+ * Tracks which files have been indexed with their modification times.
184
+ * Infrastructure implements with JSON file, SQLite, or other storage.
185
+ */
186
+ export interface FileIndexRegistryPort {
187
+ /** Load all indexed file records for a workspace. */
188
+ loadRecords(workspace: string): Promise<readonly FileIndexRecord[]>;
189
+ /** Save all indexed file records for a workspace (replaces all). */
190
+ saveRecords(workspace: string, records: readonly FileIndexRecord[]): Promise<void>;
191
+ /** Clear all records for a workspace. */
192
+ clearRecords(workspace: string): Promise<void>;
193
+ }
152
194
  //# sourceMappingURL=repositories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repositories.d.ts","sourceRoot":"","sources":["../../../src/domain/rag/repositories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repositories.d.ts","sourceRoot":"","sources":["../../../src/domain/rag/repositories.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,16 @@ export declare function extractSnippet(fileContent: string, chunkContent: string
50
50
  * @returns Detected project type or "Unknown"
51
51
  */
52
52
  export declare function detectProjectType(fileNames: ReadonlySet<string>): string;
53
+ import type { DiscoveredFile, FileIndexRecord, IndexDelta } from "./repositories.js";
54
+ /**
55
+ * Compute the delta between discovered files and previously indexed files.
56
+ * Pure domain logic — no I/O, no side effects.
57
+ *
58
+ * @param discovered - Files found on disk by file discovery
59
+ * @param indexed - File records from the persistent registry
60
+ * @returns Delta with toAdd, toUpdate, toRemove, and unchanged lists
61
+ */
62
+ export declare function computeIndexDelta(discovered: readonly DiscoveredFile[], indexed: readonly FileIndexRecord[]): IndexDelta;
53
63
  /** Universal patterns that should always be in .ragignore. */
54
64
  export declare const UNIVERSAL_RAGIGNORE: readonly string[];
55
65
  /** Per-project-type ragignore patterns. */
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/domain/rag/services.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAgDjF;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CAgCR;AAoBD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAQxE;AAID,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EA4BhD,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAoDnE,CAAC"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/domain/rag/services.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAgDjF;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CAgCR;AAoBD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAQxE;AAID,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,SAAS,cAAc,EAAE,EACrC,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,UAAU,CAgCZ;AAID,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EA4BhD,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAoDnE,CAAC"}
@@ -136,6 +136,44 @@ export function detectProjectType(fileNames) {
136
136
  }
137
137
  return "Unknown";
138
138
  }
139
+ /**
140
+ * Compute the delta between discovered files and previously indexed files.
141
+ * Pure domain logic — no I/O, no side effects.
142
+ *
143
+ * @param discovered - Files found on disk by file discovery
144
+ * @param indexed - File records from the persistent registry
145
+ * @returns Delta with toAdd, toUpdate, toRemove, and unchanged lists
146
+ */
147
+ export function computeIndexDelta(discovered, indexed) {
148
+ const indexedMap = new Map();
149
+ for (const record of indexed) {
150
+ indexedMap.set(record.relativePath, record);
151
+ }
152
+ const discoveredPaths = new Set();
153
+ const toAdd = [];
154
+ const toUpdate = [];
155
+ const unchanged = [];
156
+ for (const file of discovered) {
157
+ discoveredPaths.add(file.relativePath);
158
+ const existing = indexedMap.get(file.relativePath);
159
+ if (existing === undefined) {
160
+ toAdd.push(file);
161
+ }
162
+ else if (file.mtimeMs > existing.mtimeMs) {
163
+ toUpdate.push(file);
164
+ }
165
+ else {
166
+ unchanged.push(file.relativePath);
167
+ }
168
+ }
169
+ const toRemove = [];
170
+ for (const record of indexed) {
171
+ if (!discoveredPaths.has(record.relativePath)) {
172
+ toRemove.push(record.relativePath);
173
+ }
174
+ }
175
+ return { toAdd, toUpdate, toRemove, unchanged };
176
+ }
139
177
  // ── Ragignore Patterns ────────────────────────────────────────────────
140
178
  /** Universal patterns that should always be in .ragignore. */
141
179
  export const UNIVERSAL_RAGIGNORE = [
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/domain/rag/services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/domain/rag/services.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * First-Run Guide Hook
3
+ *
4
+ * Injects quick-start instructions into the system prompt when the plugin
5
+ * detects a first-run scenario (AGENTS.md and config were just auto-created).
6
+ *
7
+ * Hook: "experimental.chat.system.transform"
8
+ * Signature: (input: { sessionID?, model }, output: { system: string[] }) => Promise<void>
9
+ *
10
+ * The injection happens only once per plugin load — after the first session
11
+ * receives the guidance, the flag is cleared.
12
+ *
13
+ * SOLID: SRP — first-run system prompt injection only
14
+ */
15
+ export interface FirstRunGuideState {
16
+ /** True when auto-bootstrap created AGENTS.md on this plugin load. */
17
+ isFirstRun: boolean;
18
+ /** True when RAG index has 0 documents (needs indexing). */
19
+ ragEmpty: boolean;
20
+ }
21
+ /**
22
+ * Creates the system prompt injection hook for first-run guidance.
23
+ *
24
+ * @param state - Mutable state object; isFirstRun is set by the bootstrap
25
+ * result in index.ts. The hook clears the flag after first injection.
26
+ */
27
+ export declare function createFirstRunGuideHook(state: FirstRunGuideState): (input: {
28
+ sessionID?: string;
29
+ model: unknown;
30
+ }, output: {
31
+ system: string[];
32
+ }) => Promise<void>;
33
+ //# sourceMappingURL=first-run-guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-run-guide.d.ts","sourceRoot":"","sources":["../../src/hooks/first-run-guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,UAAU,EAAE,OAAO,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,EAAE,OAAO,CAAC;CACnB;AA4BD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,kBAAkB,GACxB,CACD,KAAK,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,EAC7C,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,KACzB,OAAO,CAAC,IAAI,CAAC,CAejB"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * First-Run Guide Hook
3
+ *
4
+ * Injects quick-start instructions into the system prompt when the plugin
5
+ * detects a first-run scenario (AGENTS.md and config were just auto-created).
6
+ *
7
+ * Hook: "experimental.chat.system.transform"
8
+ * Signature: (input: { sessionID?, model }, output: { system: string[] }) => Promise<void>
9
+ *
10
+ * The injection happens only once per plugin load — after the first session
11
+ * receives the guidance, the flag is cleared.
12
+ *
13
+ * SOLID: SRP — first-run system prompt injection only
14
+ */
15
+ // ── Types ─────────────────────────────────────────────────────────────────────
16
+ // ── First-Run Guidance Content ────────────────────────────────────────────────
17
+ const FIRST_RUN_GUIDANCE = `[JARVIS FIRST-RUN DETECTED]
18
+
19
+ This project was just bootstrapped by JARVIS. The following steps are critical for a productive session:
20
+
21
+ 1. Run the /healthcheck command to verify all subsystems are operational
22
+ 2. If Ollama is available, index the codebase: use the rag-index tool
23
+ 3. Index the documentation for ORACLE search: use rag-oracle-index with directory="obsidian-vault"
24
+ 4. Review the kanban board state: use kanban-board-view
25
+ 5. Load the jarvis-onboarding skill for a complete orientation
26
+
27
+ Tell the user: "JARVIS was just set up for this project. I'm running initial diagnostics to ensure everything is configured correctly."
28
+
29
+ IMPORTANT: After completing these steps, the project will be fully operational. This message only appears on the first session after project bootstrap.`;
30
+ const RAG_EMPTY_GUIDANCE = `[JARVIS RAG INDEX EMPTY]
31
+
32
+ The RAG semantic search index has 0 documents. The agent should suggest running:
33
+ - rag-index (to index the codebase — requires Ollama running)
34
+ - rag-oracle-index directory="obsidian-vault" (to index documentation)
35
+
36
+ Without RAG indexing, semantic code search will not return results.`;
37
+ // ── Hook Factory ──────────────────────────────────────────────────────────────
38
+ /**
39
+ * Creates the system prompt injection hook for first-run guidance.
40
+ *
41
+ * @param state - Mutable state object; isFirstRun is set by the bootstrap
42
+ * result in index.ts. The hook clears the flag after first injection.
43
+ */
44
+ export function createFirstRunGuideHook(state) {
45
+ let injected = false;
46
+ return async (_input, output) => {
47
+ // First-run guidance: inject once, then clear
48
+ if (state.isFirstRun && !injected) {
49
+ output.system.push(FIRST_RUN_GUIDANCE);
50
+ injected = true;
51
+ }
52
+ // RAG empty warning: inject every session until indexing happens
53
+ if (state.ragEmpty) {
54
+ output.system.push(RAG_EMPTY_GUIDANCE);
55
+ }
56
+ };
57
+ }
58
+ //# sourceMappingURL=first-run-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-run-guide.js","sourceRoot":"","sources":["../../src/hooks/first-run-guide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,iFAAiF;AASjF,iFAAiF;AAEjF,MAAM,kBAAkB,GAAG;;;;;;;;;;;;wJAY6H,CAAC;AAEzJ,MAAM,kBAAkB,GAAG;;;;;;oEAMyC,CAAC;AAErE,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAyB;IAKzB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAC9B,8CAA8C;QAC9C,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACvC,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,iEAAiE;QACjE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAqGlD,eAAO,MAAM,YAAY,EAAE,MA2X1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA6GlD,eAAO,MAAM,YAAY,EAAE,MA+Z1B,CAAC"}
package/dist/index.js CHANGED
@@ -28,6 +28,7 @@ import { VectraVectorRepository } from "./infrastructure/rag/vectra-adapter.js";
28
28
  import { OllamaEmbeddingProvider } from "./infrastructure/rag/ollama-embeddings.js";
29
29
  import { LangchainTextSplitter } from "./infrastructure/rag/text-splitter.js";
30
30
  import { FileSystemDiscovery } from "./infrastructure/rag/file-discovery.js";
31
+ import { JsonFileIndexRegistry } from "./infrastructure/rag/file-index-registry.js";
31
32
  import { RagUseCases } from "./application/rag/use-cases.js";
32
33
  import { OracleUseCases } from "./application/rag/oracle-use-cases.js";
33
34
  import { LspClientAdapter } from "./infrastructure/domain-map/lsp-adapter.js";
@@ -77,12 +78,18 @@ import { AzureSyncPullUseCases } from "./application/azure-sync/pull-use-cases.j
77
78
  import { AzurePrUseCases } from "./application/azure-sync/pr-use-cases.js";
78
79
  import { AzureDevOpsClient } from "./infrastructure/azure-sync/azure-devops-client.js";
79
80
  import { SqliteSyncRepository } from "./infrastructure/azure-sync/sqlite-sync-repository.js";
81
+ import { SqliteSyncEventRepository } from "./infrastructure/azure-sync/sqlite-event-repository.js";
82
+ import { AzurePollService, SyncEventUseCases } from "./application/azure-sync/poll-service.js";
80
83
  import { createAzureSyncTools } from "./tools/azure-sync-tools.js";
84
+ import { createAzureSyncEventTools } from "./tools/azure-sync-event-tools.js";
85
+ import { createBootstrapTools } from "./tools/bootstrap-tools.js";
86
+ import { BootstrapUseCases, HealthcheckUseCases } from "./application/bootstrap/index.js";
81
87
  // Hooks
82
88
  import { createCompactingHook } from "./hooks/context-compacting.js";
83
89
  import { createShellEnvHook } from "./hooks/shell-env.js";
84
90
  import { createGuardrailsHook } from "./hooks/guardrails.js";
85
91
  import { createEventHook } from "./hooks/event-handlers.js";
92
+ import { createFirstRunGuideHook } from "./hooks/first-run-guide.js";
86
93
  import { PluginLogger } from "./hooks/logger.js";
87
94
  /**
88
95
  * Derive workspace name from directory path.
@@ -196,33 +203,12 @@ export const JarvisPlugin = async (input) => {
196
203
  });
197
204
  // Environment (use cases created after projectScanner, see below)
198
205
  // ── Tools ─────────────────────────────────────────────────────────
199
- const contextMemoryTools = createContextMemoryTools({
200
- sessionUseCases,
201
- todoUseCases,
202
- noteUseCases,
203
- getWorkspace,
204
- });
205
- const kanbanCardTools = createKanbanCardTools({
206
- cardUseCases,
207
- sprintUseCases,
208
- epicUseCases,
209
- getWorkspace,
210
- });
211
- const kanbanGroomingTools = createKanbanGroomingTools({
212
- cardUseCases,
213
- });
214
- const kanbanGateTools = createKanbanGateTools({
215
- cardUseCases,
216
- });
217
- const kanbanBoardTools = createKanbanBoardTools({
218
- sprintUseCases,
219
- epicUseCases,
220
- boardUseCases,
221
- getWorkspace,
222
- });
223
- const governanceTools = createGovernanceTools({
224
- governanceUseCases,
225
- });
206
+ const contextMemoryTools = createContextMemoryTools({ sessionUseCases, todoUseCases, noteUseCases, getWorkspace });
207
+ const kanbanCardTools = createKanbanCardTools({ cardUseCases, sprintUseCases, epicUseCases, getWorkspace });
208
+ const kanbanGroomingTools = createKanbanGroomingTools({ cardUseCases });
209
+ const kanbanGateTools = createKanbanGateTools({ cardUseCases });
210
+ const kanbanBoardTools = createKanbanBoardTools({ sprintUseCases, epicUseCases, boardUseCases, getWorkspace });
211
+ const governanceTools = createGovernanceTools({ governanceUseCases });
226
212
  // RAG Infrastructure (native TypeScript — Vectra + Ollama + TextSplitters)
227
213
  const ragConfig = configService.getRagConfig();
228
214
  const ragPersistRoot = join(jarvisDir, "rag");
@@ -231,12 +217,14 @@ export const JarvisPlugin = async (input) => {
231
217
  const vectorRepository = new VectraVectorRepository(ragPersistRoot, ragConfig.ollama.model);
232
218
  const textSplitter = new LangchainTextSplitter();
233
219
  const fileDiscovery = new FileSystemDiscovery();
220
+ const fileIndexRegistry = new JsonFileIndexRegistry(ragPersistRoot);
234
221
  const ragUseCases = new RagUseCases({
235
222
  embeddingProvider,
236
223
  vectorRepository,
237
224
  textSplitter,
238
225
  fileDiscovery,
239
226
  ragConfig,
227
+ fileIndexRegistry,
240
228
  });
241
229
  const oracleUseCases = new OracleUseCases({
242
230
  embeddingProvider,
@@ -324,6 +312,45 @@ export const JarvisPlugin = async (input) => {
324
312
  defaultProject: azureSyncConfig.project,
325
313
  defaultRepository: azureSyncConfig.repository,
326
314
  });
315
+ const syncEventRepo = new SqliteSyncEventRepository(db);
316
+ const syncEventUseCases = new SyncEventUseCases(syncEventRepo);
317
+ let pollService;
318
+ if (azureSyncConfig.pollEnabled && azureSyncConfig.organization && azureSyncConfig.project) {
319
+ pollService = new AzurePollService({
320
+ azureClient, syncMappingRepo: syncRepo, syncEventRepo,
321
+ org: azureSyncConfig.organization, project: azureSyncConfig.project,
322
+ onChangesDetected: (n) => { log.info(`[Poll] ${n.summary}`, { eventCount: n.eventCount }); },
323
+ onError: (e) => { log.error(`[Poll] ${e}`); },
324
+ }, azureSyncConfig.pollIntervalSecs);
325
+ pollService.start();
326
+ }
327
+ const azureSyncEventTools = createAzureSyncEventTools({ syncEventUseCases, pollService });
328
+ // Bootstrap Tools (project initialization + healthcheck)
329
+ const bootstrapUseCases = new BootstrapUseCases();
330
+ const healthcheckUseCases = new HealthcheckUseCases({
331
+ ollamaUrl: ragConfig.ollama.url,
332
+ ollamaModel: ragConfig.ollama.model,
333
+ dbPath,
334
+ configPath: join(input.directory, "config", "jarvis.yaml"),
335
+ workspace: getWorkspace(input.directory),
336
+ getRagStatus: async (ws) => {
337
+ try {
338
+ const s = await ragUseCases.status({ workspace: ws });
339
+ if (s.success)
340
+ return { documentCount: s.data.documentCount };
341
+ return null;
342
+ }
343
+ catch {
344
+ return null;
345
+ }
346
+ },
347
+ });
348
+ const bootstrapTools = createBootstrapTools({
349
+ bootstrapUseCases,
350
+ healthcheckUseCases,
351
+ configService,
352
+ directory: input.directory,
353
+ });
327
354
  // ── Auto-Registration ─────────────────────────────────────────────
328
355
  // Register current workspace in the central registry on plugin boot.
329
356
  // Fire-and-forget — does not block plugin startup.
@@ -335,6 +362,24 @@ export const JarvisPlugin = async (input) => {
335
362
  agentRegistryUseCases.bootstrapBuiltInProfiles(BUILT_IN_PROFILES).catch((err) => {
336
363
  log.exception("Agent profile bootstrap failed", err);
337
364
  });
365
+ // Auto-bootstrap AGENTS.md + project structure if missing (fire-and-forget, non-blocking).
366
+ const firstRunState = { isFirstRun: false, ragEmpty: false };
367
+ try {
368
+ const bsRes = bootstrapUseCases.bootstrap(input.directory, bootstrapUseCases.buildConfig(azureSyncConfig), false);
369
+ if (bsRes.agentsMdCreated) {
370
+ log.info("AGENTS.md auto-generated", { path: bsRes.agentsMdPath });
371
+ firstRunState.isFirstRun = true;
372
+ }
373
+ }
374
+ catch (err) {
375
+ log.exception("Auto-bootstrap failed", err);
376
+ }
377
+ // Detect empty RAG index (async, non-blocking — updates state for hook).
378
+ ragUseCases.status({ workspace: wsName }).then((s) => {
379
+ if (s.success && s.data.documentCount === 0) {
380
+ firstRunState.ragEmpty = true;
381
+ }
382
+ }).catch(() => { });
338
383
  // ── Hooks ─────────────────────────────────────────────────────────
339
384
  const compactingHook = createCompactingHook({
340
385
  sessionUseCases,
@@ -356,6 +401,7 @@ export const JarvisPlugin = async (input) => {
356
401
  workspace: getWorkspace(input.directory),
357
402
  log: log.child("events"),
358
403
  });
404
+ const firstRunGuideHook = createFirstRunGuideHook(firstRunState);
359
405
  // ── Compose Hooks Object ──────────────────────────────────────────
360
406
  const allTools = {
361
407
  ...contextMemoryTools,
@@ -376,6 +422,8 @@ export const JarvisPlugin = async (input) => {
376
422
  ...agentRegistryTools,
377
423
  ...pipelineTools,
378
424
  ...azureSyncTools,
425
+ ...azureSyncEventTools,
426
+ ...bootstrapTools,
379
427
  };
380
428
  log.info("Plugin initialized", {
381
429
  workspace: wsName,
@@ -385,6 +433,7 @@ export const JarvisPlugin = async (input) => {
385
433
  return {
386
434
  tool: allTools,
387
435
  "experimental.session.compacting": compactingHook,
436
+ "experimental.chat.system.transform": firstRunGuideHook,
388
437
  "shell.env": shellEnvHook,
389
438
  "tool.execute.before": guardrailsHook,
390
439
  event: eventHook,