@roackb2/heddle 1.1.0 → 1.2.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 (166) hide show
  1. package/dist/src/cli/ask.d.ts.map +1 -1
  2. package/dist/src/cli/ask.js +11 -1
  3. package/dist/src/cli/ask.js.map +1 -1
  4. package/dist/src/cli/chat/App.d.ts.map +1 -1
  5. package/dist/src/cli/chat/App.js +11 -143
  6. package/dist/src/cli/chat/App.js.map +1 -1
  7. package/dist/src/cli/chat/adapters/slash-command-context.js +1 -1
  8. package/dist/src/cli/chat/adapters/slash-command-context.js.map +1 -1
  9. package/dist/src/cli/chat/hooks/{tui-agent-turn-lifecycle.d.ts → controllers/run/tui-agent-turn-lifecycle.d.ts} +1 -1
  10. package/dist/src/cli/chat/hooks/controllers/run/tui-agent-turn-lifecycle.d.ts.map +1 -0
  11. package/dist/src/cli/chat/hooks/controllers/run/tui-agent-turn-lifecycle.js.map +1 -0
  12. package/dist/src/cli/chat/hooks/{tui-agent-turn-result.d.ts → controllers/run/tui-agent-turn-result.d.ts} +4 -4
  13. package/dist/src/cli/chat/hooks/controllers/run/tui-agent-turn-result.d.ts.map +1 -0
  14. package/dist/src/cli/chat/hooks/{tui-agent-turn-result.js → controllers/run/tui-agent-turn-result.js} +6 -6
  15. package/dist/src/cli/chat/hooks/controllers/run/tui-agent-turn-result.js.map +1 -0
  16. package/dist/src/cli/chat/hooks/{tui-compaction-status.d.ts → controllers/run/tui-compaction-status.d.ts} +4 -4
  17. package/dist/src/cli/chat/hooks/controllers/run/tui-compaction-status.d.ts.map +1 -0
  18. package/dist/src/cli/chat/hooks/{tui-compaction-status.js → controllers/run/tui-compaction-status.js} +1 -1
  19. package/dist/src/cli/chat/hooks/controllers/run/tui-compaction-status.js.map +1 -0
  20. package/dist/src/cli/chat/hooks/{tui-direct-shell-result.d.ts → controllers/run/tui-direct-shell-result.d.ts} +3 -3
  21. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell-result.d.ts.map +1 -0
  22. package/dist/src/cli/chat/hooks/{tui-direct-shell-result.js → controllers/run/tui-direct-shell-result.js} +3 -3
  23. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell-result.js.map +1 -0
  24. package/dist/src/cli/chat/hooks/{tui-direct-shell.d.ts → controllers/run/tui-direct-shell.d.ts} +5 -5
  25. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.d.ts.map +1 -0
  26. package/dist/src/cli/chat/hooks/{tui-direct-shell.js → controllers/run/tui-direct-shell.js} +9 -8
  27. package/dist/src/cli/chat/hooks/controllers/run/tui-direct-shell.js.map +1 -0
  28. package/dist/src/cli/chat/hooks/{tui-drift-observer.d.ts → controllers/run/tui-drift-observer.d.ts} +3 -3
  29. package/dist/src/cli/chat/hooks/controllers/run/tui-drift-observer.d.ts.map +1 -0
  30. package/dist/src/cli/chat/hooks/{tui-drift-observer.js → controllers/run/tui-drift-observer.js} +2 -2
  31. package/dist/src/cli/chat/hooks/controllers/run/tui-drift-observer.js.map +1 -0
  32. package/dist/src/cli/chat/hooks/{tui-ordinary-turn.d.ts → controllers/run/tui-ordinary-turn.d.ts} +5 -5
  33. package/dist/src/cli/chat/hooks/controllers/run/tui-ordinary-turn.d.ts.map +1 -0
  34. package/dist/src/cli/chat/hooks/{tui-ordinary-turn.js → controllers/run/tui-ordinary-turn.js} +2 -2
  35. package/dist/src/cli/chat/hooks/controllers/run/tui-ordinary-turn.js.map +1 -0
  36. package/dist/src/cli/chat/hooks/{tui-run-loop-events.d.ts → controllers/run/tui-run-loop-events.d.ts} +4 -4
  37. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.d.ts.map +1 -0
  38. package/dist/src/cli/chat/hooks/{tui-run-loop-events.js → controllers/run/tui-run-loop-events.js} +4 -4
  39. package/dist/src/cli/chat/hooks/controllers/run/tui-run-loop-events.js.map +1 -0
  40. package/dist/src/cli/chat/hooks/{tui-tool-approval.d.ts → controllers/run/tui-tool-approval.d.ts} +3 -3
  41. package/dist/src/cli/chat/hooks/controllers/run/tui-tool-approval.d.ts.map +1 -0
  42. package/dist/src/cli/chat/hooks/{tui-tool-approval.js → controllers/run/tui-tool-approval.js} +4 -4
  43. package/dist/src/cli/chat/hooks/controllers/run/tui-tool-approval.js.map +1 -0
  44. package/dist/src/cli/chat/hooks/{useAgentRun.d.ts → controllers/useAgentRunController.d.ts} +9 -9
  45. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.d.ts.map +1 -0
  46. package/dist/src/cli/chat/hooks/{useAgentRun.js → controllers/useAgentRunController.js} +14 -14
  47. package/dist/src/cli/chat/hooks/controllers/useAgentRunController.js.map +1 -0
  48. package/dist/src/cli/chat/hooks/controllers/useChatAppController.d.ts +24 -0
  49. package/dist/src/cli/chat/hooks/controllers/useChatAppController.d.ts.map +1 -0
  50. package/dist/src/cli/chat/hooks/controllers/useChatAppController.js +174 -0
  51. package/dist/src/cli/chat/hooks/controllers/useChatAppController.js.map +1 -0
  52. package/dist/src/cli/chat/hooks/{usePromptSubmission.d.ts → controllers/usePromptSubmissionController.d.ts} +7 -7
  53. package/dist/src/cli/chat/hooks/controllers/usePromptSubmissionController.d.ts.map +1 -0
  54. package/dist/src/cli/chat/hooks/{usePromptSubmission.js → controllers/usePromptSubmissionController.js} +4 -4
  55. package/dist/src/cli/chat/hooks/controllers/usePromptSubmissionController.js.map +1 -0
  56. package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts +1 -1
  57. package/dist/src/cli/chat/hooks/useApprovalFlow.d.ts.map +1 -1
  58. package/dist/src/cli/chat/hooks/useChatSessions.d.ts.map +1 -1
  59. package/dist/src/cli/chat/hooks/useChatSessions.js +49 -77
  60. package/dist/src/cli/chat/hooks/useChatSessions.js.map +1 -1
  61. package/dist/src/cli/chat/submit.js +1 -1
  62. package/dist/src/cli/chat/submit.js.map +1 -1
  63. package/dist/src/cli/session.js +1 -1
  64. package/dist/src/cli/session.js.map +1 -1
  65. package/dist/src/core/awareness/domains/coding/collectors/project-signals.d.ts +12 -0
  66. package/dist/src/core/awareness/domains/coding/collectors/project-signals.d.ts.map +1 -0
  67. package/dist/src/core/awareness/domains/coding/collectors/project-signals.js +187 -0
  68. package/dist/src/core/awareness/domains/coding/collectors/project-signals.js.map +1 -0
  69. package/dist/src/core/awareness/domains/coding/collectors/workspace.d.ts +3 -1
  70. package/dist/src/core/awareness/domains/coding/collectors/workspace.d.ts.map +1 -1
  71. package/dist/src/core/awareness/domains/coding/collectors/workspace.js +20 -11
  72. package/dist/src/core/awareness/domains/coding/collectors/workspace.js.map +1 -1
  73. package/dist/src/core/awareness/domains/coding/detectors/go.d.ts +3 -0
  74. package/dist/src/core/awareness/domains/coding/detectors/go.d.ts.map +1 -0
  75. package/dist/src/core/awareness/domains/coding/detectors/go.js +48 -0
  76. package/dist/src/core/awareness/domains/coding/detectors/go.js.map +1 -0
  77. package/dist/src/core/awareness/domains/coding/detectors/javascript.d.ts +3 -0
  78. package/dist/src/core/awareness/domains/coding/detectors/javascript.d.ts.map +1 -0
  79. package/dist/src/core/awareness/domains/coding/detectors/javascript.js +90 -0
  80. package/dist/src/core/awareness/domains/coding/detectors/javascript.js.map +1 -0
  81. package/dist/src/core/awareness/domains/coding/detectors/python.d.ts +3 -0
  82. package/dist/src/core/awareness/domains/coding/detectors/python.d.ts.map +1 -0
  83. package/dist/src/core/awareness/domains/coding/detectors/python.js +79 -0
  84. package/dist/src/core/awareness/domains/coding/detectors/python.js.map +1 -0
  85. package/dist/src/core/awareness/domains/coding/detectors/types.d.ts +18 -0
  86. package/dist/src/core/awareness/domains/coding/detectors/types.d.ts.map +1 -0
  87. package/dist/src/core/awareness/domains/coding/detectors/types.js +2 -0
  88. package/dist/src/core/awareness/domains/coding/detectors/types.js.map +1 -0
  89. package/dist/src/core/awareness/domains/coding/format.d.ts.map +1 -1
  90. package/dist/src/core/awareness/domains/coding/format.js +6 -0
  91. package/dist/src/core/awareness/domains/coding/format.js.map +1 -1
  92. package/dist/src/core/awareness/domains/coding/provider.d.ts.map +1 -1
  93. package/dist/src/core/awareness/domains/coding/provider.js +18 -1
  94. package/dist/src/core/awareness/domains/coding/provider.js.map +1 -1
  95. package/dist/src/core/awareness/domains/coding/types.d.ts +68 -1
  96. package/dist/src/core/awareness/domains/coding/types.d.ts.map +1 -1
  97. package/dist/src/core/awareness/types.d.ts +1 -1
  98. package/dist/src/core/awareness/types.d.ts.map +1 -1
  99. package/dist/src/core/chat/engine/sessions/{storage.d.ts → repository/file-chat-session-repository.d.ts} +16 -18
  100. package/dist/src/core/chat/engine/sessions/repository/file-chat-session-repository.d.ts.map +1 -0
  101. package/dist/src/core/chat/engine/sessions/{storage.js → repository/file-chat-session-repository.js} +62 -51
  102. package/dist/src/core/chat/engine/sessions/repository/file-chat-session-repository.js.map +1 -0
  103. package/dist/src/core/chat/engine/sessions/service.d.ts +6 -1
  104. package/dist/src/core/chat/engine/sessions/service.d.ts.map +1 -1
  105. package/dist/src/core/chat/engine/sessions/service.js +95 -13
  106. package/dist/src/core/chat/engine/sessions/service.js.map +1 -1
  107. package/dist/src/core/chat/engine/sessions/session-record.d.ts +15 -0
  108. package/dist/src/core/chat/engine/sessions/session-record.d.ts.map +1 -0
  109. package/dist/src/core/chat/engine/sessions/session-record.js +59 -0
  110. package/dist/src/core/chat/engine/sessions/session-record.js.map +1 -0
  111. package/dist/src/core/chat/engine/turns/context.js +1 -1
  112. package/dist/src/core/chat/engine/turns/context.js.map +1 -1
  113. package/dist/src/core/chat/engine/turns/memory-maintenance.d.ts.map +1 -1
  114. package/dist/src/core/chat/engine/turns/memory-maintenance.js +2 -1
  115. package/dist/src/core/chat/engine/turns/memory-maintenance.js.map +1 -1
  116. package/dist/src/core/chat/engine/turns/persistence.d.ts.map +1 -1
  117. package/dist/src/core/chat/engine/turns/persistence.js +2 -1
  118. package/dist/src/core/chat/engine/turns/persistence.js.map +1 -1
  119. package/dist/src/core/chat/engine/turns/preflight.d.ts.map +1 -1
  120. package/dist/src/core/chat/engine/turns/preflight.js +2 -1
  121. package/dist/src/core/chat/engine/turns/preflight.js.map +1 -1
  122. package/dist/src/core/chat/engine/turns/result.js +1 -1
  123. package/dist/src/core/chat/engine/turns/result.js.map +1 -1
  124. package/dist/src/core/chat/engine/turns/run-conversation-turn.d.ts.map +1 -1
  125. package/dist/src/core/chat/engine/turns/run-conversation-turn.js +2 -1
  126. package/dist/src/core/chat/engine/turns/run-conversation-turn.js.map +1 -1
  127. package/dist/src/core/chat/engine/turns/service.js +1 -1
  128. package/dist/src/core/chat/engine/turns/service.js.map +1 -1
  129. package/dist/src/core/chat/engine/types.d.ts +1 -0
  130. package/dist/src/core/chat/engine/types.d.ts.map +1 -1
  131. package/dist/src/core/tools/toolkits/coding-awareness/project-dashboard.d.ts.map +1 -1
  132. package/dist/src/core/tools/toolkits/coding-awareness/project-dashboard.js +9 -4
  133. package/dist/src/core/tools/toolkits/coding-awareness/project-dashboard.js.map +1 -1
  134. package/dist/src/server/features/control-plane/services/chat-sessions.d.ts.map +1 -1
  135. package/dist/src/server/features/control-plane/services/chat-sessions.js +11 -1
  136. package/dist/src/server/features/control-plane/services/chat-sessions.js.map +1 -1
  137. package/package.json +1 -1
  138. package/dist/src/cli/chat/hooks/tui-agent-turn-lifecycle.d.ts.map +0 -1
  139. package/dist/src/cli/chat/hooks/tui-agent-turn-lifecycle.js.map +0 -1
  140. package/dist/src/cli/chat/hooks/tui-agent-turn-result.d.ts.map +0 -1
  141. package/dist/src/cli/chat/hooks/tui-agent-turn-result.js.map +0 -1
  142. package/dist/src/cli/chat/hooks/tui-compaction-status.d.ts.map +0 -1
  143. package/dist/src/cli/chat/hooks/tui-compaction-status.js.map +0 -1
  144. package/dist/src/cli/chat/hooks/tui-direct-shell-result.d.ts.map +0 -1
  145. package/dist/src/cli/chat/hooks/tui-direct-shell-result.js.map +0 -1
  146. package/dist/src/cli/chat/hooks/tui-direct-shell.d.ts.map +0 -1
  147. package/dist/src/cli/chat/hooks/tui-direct-shell.js.map +0 -1
  148. package/dist/src/cli/chat/hooks/tui-drift-observer.d.ts.map +0 -1
  149. package/dist/src/cli/chat/hooks/tui-drift-observer.js.map +0 -1
  150. package/dist/src/cli/chat/hooks/tui-ordinary-turn.d.ts.map +0 -1
  151. package/dist/src/cli/chat/hooks/tui-ordinary-turn.js.map +0 -1
  152. package/dist/src/cli/chat/hooks/tui-run-loop-events.d.ts.map +0 -1
  153. package/dist/src/cli/chat/hooks/tui-run-loop-events.js.map +0 -1
  154. package/dist/src/cli/chat/hooks/tui-tool-approval.d.ts.map +0 -1
  155. package/dist/src/cli/chat/hooks/tui-tool-approval.js.map +0 -1
  156. package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +0 -1
  157. package/dist/src/cli/chat/hooks/useAgentRun.js.map +0 -1
  158. package/dist/src/cli/chat/hooks/usePromptSubmission.d.ts.map +0 -1
  159. package/dist/src/cli/chat/hooks/usePromptSubmission.js.map +0 -1
  160. package/dist/src/cli/chat/state/storage.d.ts +0 -2
  161. package/dist/src/cli/chat/state/storage.d.ts.map +0 -1
  162. package/dist/src/cli/chat/state/storage.js +0 -2
  163. package/dist/src/cli/chat/state/storage.js.map +0 -1
  164. package/dist/src/core/chat/engine/sessions/storage.d.ts.map +0 -1
  165. package/dist/src/core/chat/engine/sessions/storage.js.map +0 -1
  166. /package/dist/src/cli/chat/hooks/{tui-agent-turn-lifecycle.js → controllers/run/tui-agent-turn-lifecycle.js} +0 -0
@@ -0,0 +1,48 @@
1
+ export const goProjectDetector = {
2
+ id: 'go',
3
+ async detect(input) {
4
+ const rootEntries = new Set(input.rootEntries);
5
+ const hasGoMod = rootEntries.has('go.mod');
6
+ const hasGoSum = rootEntries.has('go.sum');
7
+ if (!hasGoMod && !hasGoSum) {
8
+ return null;
9
+ }
10
+ const manifests = hasGoMod
11
+ ? [{
12
+ kind: 'go_mod',
13
+ path: 'go.mod',
14
+ }]
15
+ : [];
16
+ const lockfiles = hasGoSum
17
+ ? [{
18
+ kind: 'go_sum',
19
+ path: 'go.sum',
20
+ }]
21
+ : [];
22
+ const verificationSurfaces = hasGoMod
23
+ ? [{
24
+ kind: 'command',
25
+ label: 'go module verification commands',
26
+ sourcePath: 'go.mod',
27
+ commands: ['go test ./...', 'go vet ./...'],
28
+ }]
29
+ : [];
30
+ return {
31
+ project: {
32
+ kind: 'go',
33
+ manifests,
34
+ lockfiles,
35
+ verificationSurfaces,
36
+ },
37
+ configFiles: [],
38
+ sources: hasGoMod
39
+ ? [{
40
+ kind: 'package_metadata',
41
+ path: `${input.workspaceRoot}/go.mod`,
42
+ }]
43
+ : [],
44
+ limits: [],
45
+ };
46
+ },
47
+ };
48
+ //# sourceMappingURL=go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../../../../../src/core/awareness/domains/coding/detectors/go.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAAgC;IAC5D,EAAE,EAAE,IAAI;IACR,KAAK,CAAC,MAAM,CAAC,KAAK;QAChB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ;YACxB,CAAC,CAAC,CAAC;oBACC,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;iBACf,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,SAAS,GAAG,QAAQ;YACxB,CAAC,CAAC,CAAC;oBACC,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;iBACf,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,oBAAoB,GAAG,QAAQ;YACnC,CAAC,CAAC,CAAC;oBACC,IAAI,EAAE,SAAkB;oBACxB,KAAK,EAAE,iCAAiC;oBACxC,UAAU,EAAE,QAAQ;oBACpB,QAAQ,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;iBAC5C,CAAC;YACJ,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;YACL,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI;gBACV,SAAS;gBACT,SAAS;gBACT,oBAAoB;aACrB;YACD,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,QAAQ;gBACf,CAAC,CAAC,CAAC;wBACC,IAAI,EAAE,kBAA2B;wBACjC,IAAI,EAAE,GAAG,KAAK,CAAC,aAAa,SAAS;qBACtC,CAAC;gBACJ,CAAC,CAAC,EAAE;YACN,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CodingProjectSignalDetector } from './types.js';
2
+ export declare const javascriptProjectDetector: CodingProjectSignalDetector;
3
+ //# sourceMappingURL=javascript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/awareness/domains/coding/detectors/javascript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAU9D,eAAO,MAAM,yBAAyB,EAAE,2BAyEvC,CAAC"}
@@ -0,0 +1,90 @@
1
+ const LOCKFILES = [
2
+ { fileName: 'yarn.lock', kind: 'yarn_lock' },
3
+ { fileName: 'package-lock.json', kind: 'npm_lock' },
4
+ { fileName: 'pnpm-lock.yaml', kind: 'pnpm_lock' },
5
+ { fileName: 'bun.lock', kind: 'bun_lock' },
6
+ { fileName: 'bun.lockb', kind: 'bun_lockb' },
7
+ ];
8
+ export const javascriptProjectDetector = {
9
+ id: 'javascript',
10
+ async detect(input) {
11
+ const rootEntries = new Set(input.rootEntries);
12
+ const hasPackageJson = rootEntries.has('package.json');
13
+ const presentLockfiles = LOCKFILES.filter((lockfile) => rootEntries.has(lockfile.fileName));
14
+ if (!hasPackageJson && presentLockfiles.length === 0) {
15
+ return null;
16
+ }
17
+ const sources = [];
18
+ const limits = [];
19
+ const manifests = [];
20
+ if (hasPackageJson) {
21
+ manifests.push({
22
+ kind: 'package_json',
23
+ path: 'package.json',
24
+ });
25
+ sources.push({
26
+ kind: 'package_metadata',
27
+ path: `${input.workspaceRoot}/package.json`,
28
+ });
29
+ }
30
+ const lockfiles = presentLockfiles.map((lockfile) => ({
31
+ kind: lockfile.kind,
32
+ path: lockfile.fileName,
33
+ }));
34
+ const verificationSurfaces = [];
35
+ if (hasPackageJson) {
36
+ const packageJsonText = await input.readText('package.json');
37
+ if (packageJsonText) {
38
+ try {
39
+ const parsed = JSON.parse(packageJsonText);
40
+ const scriptNames = Object.keys(parsed.scripts ?? {}).sort();
41
+ const verificationScriptNames = scriptNames.filter((name) => /^(test|lint|build|typecheck|check|verify|e2e)(:|$)/.test(name));
42
+ if (verificationScriptNames.length > 0) {
43
+ verificationSurfaces.push({
44
+ kind: 'script_names',
45
+ label: 'package.json verification scripts',
46
+ sourcePath: 'package.json',
47
+ scriptNames: verificationScriptNames,
48
+ });
49
+ }
50
+ }
51
+ catch (error) {
52
+ limits.push({
53
+ kind: 'unavailable',
54
+ subject: 'package metadata',
55
+ detail: `Could not parse package.json: ${error instanceof Error ? error.message : String(error)}`,
56
+ });
57
+ }
58
+ }
59
+ }
60
+ const configFiles = input.rootEntries.filter((entry) => JAVASCRIPT_CONFIG_FILES.has(entry)).sort();
61
+ return {
62
+ project: {
63
+ kind: 'javascript',
64
+ manifests,
65
+ lockfiles,
66
+ verificationSurfaces,
67
+ },
68
+ configFiles,
69
+ sources,
70
+ limits,
71
+ };
72
+ },
73
+ };
74
+ const JAVASCRIPT_CONFIG_FILES = new Set([
75
+ 'tsconfig.json',
76
+ 'eslint.config.js',
77
+ 'eslint.config.mjs',
78
+ 'eslint.config.cjs',
79
+ '.eslintrc',
80
+ '.eslintrc.js',
81
+ '.eslintrc.cjs',
82
+ '.prettierrc',
83
+ '.prettierrc.json',
84
+ 'prettier.config.js',
85
+ 'vitest.config.ts',
86
+ 'vite.config.ts',
87
+ 'jest.config.js',
88
+ 'jest.config.ts',
89
+ ]);
90
+ //# sourceMappingURL=javascript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../../../../../src/core/awareness/domains/coding/detectors/javascript.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CodingProjectSignalDetector } from './types.js';
2
+ export declare const pythonProjectDetector: CodingProjectSignalDetector;
3
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/awareness/domains/coding/detectors/python.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAe9D,eAAO,MAAM,qBAAqB,EAAE,2BAgEnC,CAAC"}
@@ -0,0 +1,79 @@
1
+ const PYTHON_MANIFESTS = [
2
+ { fileName: 'pyproject.toml', kind: 'pyproject_toml' },
3
+ { fileName: 'requirements.txt', kind: 'requirements_txt' },
4
+ { fileName: 'requirements-dev.txt', kind: 'requirements_dev_txt' },
5
+ { fileName: 'Pipfile', kind: 'pipfile' },
6
+ ];
7
+ const PYTHON_LOCKFILES = [
8
+ { fileName: 'poetry.lock', kind: 'poetry_lock' },
9
+ { fileName: 'uv.lock', kind: 'uv_lock' },
10
+ { fileName: 'Pipfile.lock', kind: 'pipfile_lock' },
11
+ ];
12
+ export const pythonProjectDetector = {
13
+ id: 'python',
14
+ async detect(input) {
15
+ const rootEntries = new Set(input.rootEntries);
16
+ const manifests = PYTHON_MANIFESTS
17
+ .filter((manifest) => rootEntries.has(manifest.fileName))
18
+ .map((manifest) => ({
19
+ kind: manifest.kind,
20
+ path: manifest.fileName,
21
+ }));
22
+ const lockfiles = PYTHON_LOCKFILES
23
+ .filter((lockfile) => rootEntries.has(lockfile.fileName))
24
+ .map((lockfile) => ({
25
+ kind: lockfile.kind,
26
+ path: lockfile.fileName,
27
+ }));
28
+ const hasPytestIni = rootEntries.has('pytest.ini');
29
+ const hasRuffToml = rootEntries.has('ruff.toml');
30
+ const pyprojectText = rootEntries.has('pyproject.toml')
31
+ ? await input.readText('pyproject.toml')
32
+ : undefined;
33
+ const verificationSurfaces = [];
34
+ if (hasPytestIni || pyprojectText?.includes('[tool.pytest')) {
35
+ verificationSurfaces.push({
36
+ kind: 'command',
37
+ label: 'pytest command surface',
38
+ sourcePath: hasPytestIni ? 'pytest.ini' : 'pyproject.toml',
39
+ commands: ['python -m pytest'],
40
+ });
41
+ }
42
+ if (hasRuffToml || pyprojectText?.includes('[tool.ruff')) {
43
+ verificationSurfaces.push({
44
+ kind: 'command',
45
+ label: 'ruff command surface',
46
+ sourcePath: hasRuffToml ? 'ruff.toml' : 'pyproject.toml',
47
+ commands: ['ruff check .'],
48
+ });
49
+ }
50
+ if (manifests.length === 0 && lockfiles.length === 0 && verificationSurfaces.length === 0) {
51
+ return null;
52
+ }
53
+ const configFiles = input.rootEntries.filter((entry) => PYTHON_CONFIG_FILES.has(entry)).sort();
54
+ return {
55
+ project: {
56
+ kind: 'python',
57
+ manifests,
58
+ lockfiles,
59
+ verificationSurfaces,
60
+ },
61
+ configFiles,
62
+ sources: manifests
63
+ .filter((manifest) => manifest.path === 'pyproject.toml')
64
+ .map((manifest) => ({
65
+ kind: 'package_metadata',
66
+ path: `${input.workspaceRoot}/${manifest.path}`,
67
+ })),
68
+ limits: [],
69
+ };
70
+ },
71
+ };
72
+ const PYTHON_CONFIG_FILES = new Set([
73
+ 'pytest.ini',
74
+ 'ruff.toml',
75
+ 'mypy.ini',
76
+ 'tox.ini',
77
+ '.python-version',
78
+ ]);
79
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../../../../../src/core/awareness/domains/coding/detectors/python.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { AwarenessLimit, AwarenessSource } from '../../../types.js';
2
+ import type { CodingDetectedProject, CodingProjectKind } from '../types.js';
3
+ export type CodingProjectSignalContribution = {
4
+ project: CodingDetectedProject;
5
+ configFiles: string[];
6
+ sources: AwarenessSource[];
7
+ limits: AwarenessLimit[];
8
+ };
9
+ export type CodingProjectDetectorInput = {
10
+ workspaceRoot: string;
11
+ rootEntries: string[];
12
+ readText: (relativePath: string) => Promise<string | undefined>;
13
+ };
14
+ export type CodingProjectSignalDetector = {
15
+ id: CodingProjectKind;
16
+ detect(input: CodingProjectDetectorInput): Promise<CodingProjectSignalContribution | null>;
17
+ };
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/awareness/domains/coding/detectors/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,qBAAqB,CAAC;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,iBAAiB,CAAC;IACtB,MAAM,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAC;CAC5F,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/core/awareness/domains/coding/detectors/types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../../src/core/awareness/domains/coding/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAExF,wBAAgB,oCAAoC,CAAC,QAAQ,EAAE,uBAAuB,GAAG,4BAA4B,CAsBpH"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../../src/core/awareness/domains/coding/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAExF,wBAAgB,oCAAoC,CAAC,QAAQ,EAAE,uBAAuB,GAAG,4BAA4B,CA4BpH"}
@@ -7,6 +7,12 @@ export function formatCodingProjectDashboardSnapshot(snapshot) {
7
7
  if (section.type === 'workspace_tree') {
8
8
  sections.workspace_tree = section.data;
9
9
  }
10
+ if (section.type === 'project_signals') {
11
+ sections.project_signals = section.data;
12
+ }
13
+ if (section.type === 'inspection_surfaces') {
14
+ sections.inspection_surfaces = section.data;
15
+ }
10
16
  }
11
17
  return {
12
18
  schemaVersion: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../../../src/core/awareness/domains/coding/format.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oCAAoC,CAAC,QAAiC;IACpF,MAAM,QAAQ,GAA6C,EAAE,CAAC;IAE9D,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC3C,QAAQ,CAAC,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9C,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACtC,QAAQ,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../../../src/core/awareness/domains/coding/format.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oCAAoC,CAAC,QAAiC;IACpF,MAAM,QAAQ,GAA6C,EAAE,CAAC;IAE9D,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC3C,QAAQ,CAAC,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9C,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACtC,QAAQ,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACvC,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC3C,QAAQ,CAAC,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,QAAQ;QACR,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../../../src/core/awareness/domains/coding/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAG1D,MAAM,MAAM,8BAA8B,GAAG;IAC3C,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,8BAAmC,GAC3C,iBAAiB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAuChE"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../../../src/core/awareness/domains/coding/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAG1D,MAAM,MAAM,8BAA8B,GAAG;IAC3C,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,8BAAmC,GAC3C,iBAAiB,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAwDhE"}
@@ -9,7 +9,12 @@ export function createCodingAwarenessProvider(options = {}) {
9
9
  const collectedAt = (options.now ?? (() => new Date()))().toISOString();
10
10
  const id = (options.nextId ?? defaultNextId)();
11
11
  const collected = await collectCodingProjectDashboard(input);
12
- const requestedSections = new Set(input.requestedSections ?? ['working_environment', 'workspace_tree']);
12
+ const requestedSections = new Set(input.requestedSections ?? [
13
+ 'working_environment',
14
+ 'workspace_tree',
15
+ 'project_signals',
16
+ 'inspection_surfaces',
17
+ ]);
13
18
  const sections = [];
14
19
  if (requestedSections.has('working_environment')) {
15
20
  sections.push({
@@ -23,6 +28,18 @@ export function createCodingAwarenessProvider(options = {}) {
23
28
  data: collected.workspaceTree,
24
29
  });
25
30
  }
31
+ if (requestedSections.has('project_signals')) {
32
+ sections.push({
33
+ type: 'project_signals',
34
+ data: collected.projectSignals,
35
+ });
36
+ }
37
+ if (requestedSections.has('inspection_surfaces')) {
38
+ sections.push({
39
+ type: 'inspection_surfaces',
40
+ data: collected.inspectionSurfaces,
41
+ });
42
+ }
26
43
  return {
27
44
  id,
28
45
  domain: 'coding',
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../../../src/core/awareness/domains/coding/provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAO1E,MAAM,UAAU,6BAA6B,CAC3C,UAA0C,EAAE;IAE5C,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,KAAK,CAAC,OAAO,CAAC,KAA4B;YACxC,IAAI,KAAK,CAAC,OAAO,KAAK,mBAAmB,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YACxE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACxG,MAAM,QAAQ,GAAwC,EAAE,CAAC;YAEzD,IAAI,iBAAiB,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBACjD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,SAAS,CAAC,WAAW;iBAC5B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,SAAS,CAAC,aAAa;iBAC9B,CAAC,CAAC;YACL,CAAC;YAED,OAAO;gBACL,EAAE;gBACF,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,mBAAmB;gBAC5B,WAAW;gBACX,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,QAAQ;gBACR,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;aACzB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,aAAa,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../../../src/core/awareness/domains/coding/provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAO1E,MAAM,UAAU,6BAA6B,CAC3C,UAA0C,EAAE;IAE5C,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,KAAK,CAAC,OAAO,CAAC,KAA4B;YACxC,IAAI,KAAK,CAAC,OAAO,KAAK,mBAAmB,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YACxE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,EAAE,CAAC;YAC/C,MAAM,SAAS,GAAG,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI;gBAC3D,qBAAqB;gBACrB,gBAAgB;gBAChB,iBAAiB;gBACjB,qBAAqB;aACtB,CAAC,CAAC;YACH,MAAM,QAAQ,GAAwC,EAAE,CAAC;YAEzD,IAAI,iBAAiB,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBACjD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,SAAS,CAAC,WAAW;iBAC5B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC5C,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,SAAS,CAAC,aAAa;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC7C,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,iBAAiB;oBACvB,IAAI,EAAE,SAAS,CAAC,cAAc;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBACjD,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,SAAS,CAAC,kBAAkB;iBACnC,CAAC,CAAC;YACL,CAAC;YAED,OAAO;gBACL,EAAE;gBACF,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,mBAAmB;gBAC5B,WAAW;gBACX,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,QAAQ;gBACR,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;aACzB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,aAAa,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAChE,CAAC"}
@@ -30,6 +30,63 @@ export type CodingWorkspaceTree = {
30
30
  maxEntries: number;
31
31
  entries: CodingWorkspaceTreeEntry[];
32
32
  };
33
+ export type CodingProjectKind = 'javascript' | 'python' | 'go';
34
+ export type CodingManifestSignal = {
35
+ kind: string;
36
+ path: string;
37
+ };
38
+ export type CodingLockfileSignal = {
39
+ kind: string;
40
+ path: string;
41
+ };
42
+ export type CodingVerificationSurface = {
43
+ kind: 'script_names' | 'command';
44
+ label: string;
45
+ sourcePath?: string;
46
+ scriptNames?: string[];
47
+ commands?: string[];
48
+ };
49
+ export type CodingDetectedProject = {
50
+ kind: CodingProjectKind;
51
+ manifests: CodingManifestSignal[];
52
+ lockfiles: CodingLockfileSignal[];
53
+ verificationSurfaces: CodingVerificationSurface[];
54
+ };
55
+ export type CodingProjectSignals = {
56
+ detectedProjects: CodingDetectedProject[];
57
+ observedDirectories: {
58
+ source: string[];
59
+ tests: string[];
60
+ docs: string[];
61
+ examples: string[];
62
+ scripts: string[];
63
+ config: string[];
64
+ };
65
+ configFiles: string[];
66
+ };
67
+ export type CodingInspectionSurface = {
68
+ kind: 'manifest';
69
+ paths: string[];
70
+ } | {
71
+ kind: 'directory';
72
+ role: keyof CodingProjectSignals['observedDirectories'];
73
+ paths: string[];
74
+ } | {
75
+ kind: 'config_file';
76
+ paths: string[];
77
+ } | {
78
+ kind: 'verification_surface';
79
+ labels: string[];
80
+ } | {
81
+ kind: 'dirty_paths';
82
+ counts: {
83
+ staged: number;
84
+ modified: number;
85
+ deleted: number;
86
+ untracked: number;
87
+ renamed: number;
88
+ };
89
+ };
33
90
  export type CodingWorkingEnvironmentSection = {
34
91
  type: 'working_environment';
35
92
  data: CodingWorkingEnvironment;
@@ -38,7 +95,15 @@ export type CodingWorkspaceTreeSection = {
38
95
  type: 'workspace_tree';
39
96
  data: CodingWorkspaceTree;
40
97
  };
41
- export type CodingAwarenessSection = CodingWorkingEnvironmentSection | CodingWorkspaceTreeSection;
98
+ export type CodingProjectSignalsSection = {
99
+ type: 'project_signals';
100
+ data: CodingProjectSignals;
101
+ };
102
+ export type CodingInspectionSurfacesSection = {
103
+ type: 'inspection_surfaces';
104
+ data: CodingInspectionSurface[];
105
+ };
106
+ export type CodingAwarenessSection = CodingWorkingEnvironmentSection | CodingWorkspaceTreeSection | CodingProjectSignalsSection | CodingInspectionSurfacesSection;
42
107
  export type CodingProjectDashboardOutput = {
43
108
  schemaVersion: 1;
44
109
  domain: 'coding';
@@ -48,6 +113,8 @@ export type CodingProjectDashboardOutput = {
48
113
  sections: Partial<{
49
114
  working_environment: CodingWorkingEnvironment;
50
115
  workspace_tree: CodingWorkspaceTree;
116
+ project_signals: CodingProjectSignals;
117
+ inspection_surfaces: CodingInspectionSurface[];
51
118
  }>;
52
119
  sources: AwarenessSnapshot['sources'];
53
120
  limits: AwarenessSnapshot['limits'];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/core/awareness/domains/coding/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,0BAA0B,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,QAAQ,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,wBAAwB,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,wBAAwB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAC9B,+BAA+B,GAC/B,0BAA0B,CAAC;AAE/B,MAAM,MAAM,4BAA4B,GAAG;IACzC,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;QAChB,mBAAmB,EAAE,wBAAwB,CAAC;QAC9C,cAAc,EAAE,mBAAmB,CAAC;KACrC,CAAC,CAAC;IACH,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/core/awareness/domains/coding/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  export type AwarenessDomain = 'coding';
2
2
  export type AwarenessProfile = 'project_dashboard';
3
3
  export type AwarenessSource = {
4
- kind: 'filesystem' | 'git' | 'runtime_config';
4
+ kind: 'filesystem' | 'git' | 'runtime_config' | 'package_metadata';
5
5
  command?: string;
6
6
  path?: string;
7
7
  note?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/awareness/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,YAAY,GAAG,KAAK,GAAG,gBAAgB,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB,CAAC;IAChF,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,OAAO,GAAG,OAAO,IAAI;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,OAAO,GAAG,OAAO,IAAI;IACjD,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC5E,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/awareness/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEvC,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,YAAY,GAAG,KAAK,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB,CAAC;IAChF,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,OAAO,GAAG,OAAO,IAAI;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,OAAO,GAAG,OAAO,IAAI;IACjD,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC5E,CAAC"}
@@ -1,6 +1,6 @@
1
- import type { ReasoningEffort } from '../../../llm/types.js';
2
- import type { ChatArchiveRecord, ChatContextStats, ChatSession, ChatSessionLease, ConversationLine } from '../../types.js';
3
- type ChatSessionCatalogEntry = {
1
+ import type { ReasoningEffort } from '../../../../llm/types.js';
2
+ import type { ChatArchiveRecord, ChatContextStats, ChatSession, ChatSessionLease } from '../../../types.js';
3
+ export type ChatSessionCatalogEntry = {
4
4
  id: string;
5
5
  name: string;
6
6
  workspaceId?: string;
@@ -14,27 +14,25 @@ type ChatSessionCatalogEntry = {
14
14
  archives?: ChatArchiveRecord[];
15
15
  lease?: ChatSessionLease;
16
16
  };
17
- export declare function createInitialMessages(apiKeyPresent: boolean): ConversationLine[];
18
- export declare function createChatSession(options: {
19
- id: string;
20
- name: string;
21
- apiKeyPresent: boolean;
22
- model?: string;
23
- reasoningEffort?: ReasoningEffort;
24
- workspaceId?: string;
25
- }): ChatSession;
26
- export declare function touchSession(session: ChatSession): ChatSession;
27
- export declare function summarizeSession(session: ChatSession): string;
28
- export declare function isGenericSessionName(name: string): boolean;
17
+ export type ChatSessionRepository = {
18
+ list(apiKeyPresent: boolean): ChatSession[];
19
+ readCatalog(): ChatSessionCatalogEntry[];
20
+ read(sessionId: string, apiKeyPresent: boolean): ChatSession | undefined;
21
+ migrateLegacy(apiKeyPresent: boolean): ChatSession[];
22
+ save(sessions: ChatSession[]): void;
23
+ deriveStoragePaths(): ReturnType<typeof deriveSessionStoragePaths>;
24
+ };
25
+ export declare function createFileChatSessionRepository(args: {
26
+ sessionStoragePath: string;
27
+ }): ChatSessionRepository;
29
28
  export declare function loadChatSessions(sessionsPath: string, apiKeyPresent: boolean): ChatSession[];
30
29
  export declare function readChatSessionCatalog(sessionsPath: string): ChatSessionCatalogEntry[];
31
30
  export declare function readChatSession(sessionsPath: string, sessionId: string, apiKeyPresent: boolean): ChatSession | undefined;
32
31
  export declare function migrateLegacyChatSessions(sessionsPath: string, apiKeyPresent: boolean): ChatSession[];
33
32
  export declare function saveChatSessions(sessionsPath: string, sessions: ChatSession[]): void;
34
33
  export declare function deriveSessionStoragePaths(storagePath: string): {
35
- legacyPath: string;
36
34
  catalogPath: string;
35
+ legacyPath: string;
37
36
  sessionsDir: string;
38
37
  };
39
- export {};
40
- //# sourceMappingURL=storage.d.ts.map
38
+ //# sourceMappingURL=file-chat-session-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-chat-session-repository.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/chat/engine/sessions/repository/file-chat-session-repository.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAe,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAiC,MAAM,mBAAmB,CAAC;AAG3I,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAOF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,WAAW,EAAE,CAAC;IAC5C,WAAW,IAAI,uBAAuB,EAAE,CAAC;IACzC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;IACzE,aAAa,CAAC,aAAa,EAAE,OAAO,GAAG,WAAW,EAAE,CAAC;IACrD,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACpC,kBAAkB,IAAI,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;CACpE,CAAC;AAEF,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,qBAAqB,CAsBxB;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,WAAW,EAAE,CAkB5F;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,uBAAuB,EAAE,CAItF;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,CASxH;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,WAAW,EAAE,CAQrG;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QA0B7E;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM;;;;EAmC5D"}