@roackb2/heddle 1.0.2 → 1.1.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 (97) hide show
  1. package/README.md +12 -2
  2. package/dist/src/cli/chat/App.d.ts.map +1 -1
  3. package/dist/src/cli/chat/App.js +65 -48
  4. package/dist/src/cli/chat/App.js.map +1 -1
  5. package/dist/src/cli/chat/hooks/useChatSessions.d.ts +3 -2
  6. package/dist/src/cli/chat/hooks/useChatSessions.d.ts.map +1 -1
  7. package/dist/src/cli/chat/hooks/useChatSessions.js +23 -11
  8. package/dist/src/cli/chat/hooks/useChatSessions.js.map +1 -1
  9. package/dist/src/cli/chat/hooks/useChatStatusSummary.d.ts.map +1 -1
  10. package/dist/src/cli/chat/hooks/useChatStatusSummary.js +6 -2
  11. package/dist/src/cli/chat/hooks/useChatStatusSummary.js.map +1 -1
  12. package/dist/src/cli/main.js +2 -27
  13. package/dist/src/cli/main.js.map +1 -1
  14. package/dist/src/cli/project-agent-context.d.ts +4 -0
  15. package/dist/src/cli/project-agent-context.d.ts.map +1 -0
  16. package/dist/src/cli/project-agent-context.js +40 -0
  17. package/dist/src/cli/project-agent-context.js.map +1 -0
  18. package/dist/src/core/awareness/domain-prompt.d.ts +3 -0
  19. package/dist/src/core/awareness/domain-prompt.d.ts.map +1 -0
  20. package/dist/src/core/awareness/domain-prompt.js +30 -0
  21. package/dist/src/core/awareness/domain-prompt.js.map +1 -0
  22. package/dist/src/core/awareness/domains/coding/collectors/git.d.ts +9 -0
  23. package/dist/src/core/awareness/domains/coding/collectors/git.d.ts.map +1 -0
  24. package/dist/src/core/awareness/domains/coding/collectors/git.js +257 -0
  25. package/dist/src/core/awareness/domains/coding/collectors/git.js.map +1 -0
  26. package/dist/src/core/awareness/domains/coding/collectors/workspace-tree.d.ts +12 -0
  27. package/dist/src/core/awareness/domains/coding/collectors/workspace-tree.d.ts.map +1 -0
  28. package/dist/src/core/awareness/domains/coding/collectors/workspace-tree.js +126 -0
  29. package/dist/src/core/awareness/domains/coding/collectors/workspace-tree.js.map +1 -0
  30. package/dist/src/core/awareness/domains/coding/collectors/workspace.d.ts +14 -0
  31. package/dist/src/core/awareness/domains/coding/collectors/workspace.d.ts.map +1 -0
  32. package/dist/src/core/awareness/domains/coding/collectors/workspace.js +56 -0
  33. package/dist/src/core/awareness/domains/coding/collectors/workspace.js.map +1 -0
  34. package/dist/src/core/awareness/domains/coding/format.d.ts +3 -0
  35. package/dist/src/core/awareness/domains/coding/format.d.ts.map +1 -0
  36. package/dist/src/core/awareness/domains/coding/format.js +22 -0
  37. package/dist/src/core/awareness/domains/coding/format.js.map +1 -0
  38. package/dist/src/core/awareness/domains/coding/provider.d.ts +8 -0
  39. package/dist/src/core/awareness/domains/coding/provider.d.ts.map +1 -0
  40. package/dist/src/core/awareness/domains/coding/provider.js +42 -0
  41. package/dist/src/core/awareness/domains/coding/provider.js.map +1 -0
  42. package/dist/src/core/awareness/domains/coding/types.d.ts +56 -0
  43. package/dist/src/core/awareness/domains/coding/types.d.ts.map +1 -0
  44. package/dist/src/core/awareness/domains/coding/types.js +2 -0
  45. package/dist/src/core/awareness/domains/coding/types.js.map +1 -0
  46. package/dist/src/core/awareness/format.d.ts +7 -0
  47. package/dist/src/core/awareness/format.d.ts.map +1 -0
  48. package/dist/src/core/awareness/format.js +27 -0
  49. package/dist/src/core/awareness/format.js.map +1 -0
  50. package/dist/src/core/awareness/index.d.ts +7 -0
  51. package/dist/src/core/awareness/index.d.ts.map +1 -0
  52. package/dist/src/core/awareness/index.js +5 -0
  53. package/dist/src/core/awareness/index.js.map +1 -0
  54. package/dist/src/core/awareness/service.d.ts +8 -0
  55. package/dist/src/core/awareness/service.d.ts.map +1 -0
  56. package/dist/src/core/awareness/service.js +13 -0
  57. package/dist/src/core/awareness/service.js.map +1 -0
  58. package/dist/src/core/awareness/types.d.ts +37 -0
  59. package/dist/src/core/awareness/types.d.ts.map +1 -0
  60. package/dist/src/core/awareness/types.js +2 -0
  61. package/dist/src/core/awareness/types.js.map +1 -0
  62. package/dist/src/core/chat/engine/sessions/preferences/service.d.ts +23 -0
  63. package/dist/src/core/chat/engine/sessions/preferences/service.d.ts.map +1 -0
  64. package/dist/src/core/chat/engine/sessions/preferences/service.js +29 -0
  65. package/dist/src/core/chat/engine/sessions/preferences/service.js.map +1 -0
  66. package/dist/src/core/chat/engine/turns/runtime.d.ts.map +1 -1
  67. package/dist/src/core/chat/engine/turns/runtime.js +3 -2
  68. package/dist/src/core/chat/engine/turns/runtime.js.map +1 -1
  69. package/dist/src/core/commands/slash/modules/model/model-commands.d.ts.map +1 -1
  70. package/dist/src/core/commands/slash/modules/model/model-commands.js +14 -16
  71. package/dist/src/core/commands/slash/modules/model/model-commands.js.map +1 -1
  72. package/dist/src/core/llm/model-policy.js +4 -4
  73. package/dist/src/core/llm/model-policy.js.map +1 -1
  74. package/dist/src/core/memory/catalog.js +1 -1
  75. package/dist/src/core/memory/catalog.js.map +1 -1
  76. package/dist/src/core/prompts/system-prompt.d.ts.map +1 -1
  77. package/dist/src/core/prompts/system-prompt.js +1 -0
  78. package/dist/src/core/prompts/system-prompt.js.map +1 -1
  79. package/dist/src/core/runtime/default-tools.d.ts.map +1 -1
  80. package/dist/src/core/runtime/default-tools.js +2 -0
  81. package/dist/src/core/runtime/default-tools.js.map +1 -1
  82. package/dist/src/core/tools/toolkits/coding-awareness/project-dashboard.d.ts +7 -0
  83. package/dist/src/core/tools/toolkits/coding-awareness/project-dashboard.d.ts.map +1 -0
  84. package/dist/src/core/tools/toolkits/coding-awareness/project-dashboard.js +106 -0
  85. package/dist/src/core/tools/toolkits/coding-awareness/project-dashboard.js.map +1 -0
  86. package/dist/src/core/tools/toolkits/coding-awareness/toolkit.d.ts +3 -0
  87. package/dist/src/core/tools/toolkits/coding-awareness/toolkit.d.ts.map +1 -0
  88. package/dist/src/core/tools/toolkits/coding-awareness/toolkit.js +10 -0
  89. package/dist/src/core/tools/toolkits/coding-awareness/toolkit.js.map +1 -0
  90. package/dist/src/index.d.ts +2 -0
  91. package/dist/src/index.d.ts.map +1 -1
  92. package/dist/src/index.js +1 -0
  93. package/dist/src/index.js.map +1 -1
  94. package/dist/src/web/assets/{MonacoDiffViewer-D_2D56lo.js → MonacoDiffViewer-vifX8i2F.js} +1 -1
  95. package/dist/src/web/assets/{index-Du00cqAD.js → index-vEln1ViW.js} +3 -3
  96. package/dist/src/web/index.html +1 -1
  97. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-tree.js","sourceRoot":"","sources":["../../../../../../../src/core/awareness/domains/coding/collectors/workspace-tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { AwarenessCollectInput, AwarenessLimit, AwarenessSource } from '../../../types.js';
2
+ import type { CodingWorkingEnvironment, CodingWorkspaceTree } from '../types.js';
3
+ export declare function collectCodingWorkingEnvironment(input: AwarenessCollectInput): Promise<{
4
+ environment: CodingWorkingEnvironment;
5
+ sources: AwarenessSource[];
6
+ limits: AwarenessLimit[];
7
+ }>;
8
+ export declare function collectCodingProjectDashboard(input: AwarenessCollectInput): Promise<{
9
+ environment: CodingWorkingEnvironment;
10
+ workspaceTree: CodingWorkspaceTree;
11
+ sources: AwarenessSource[];
12
+ limits: AwarenessLimit[];
13
+ }>;
14
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/awareness/domains/coding/collectors/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIjF,wBAAsB,+BAA+B,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC;IAC3F,WAAW,EAAE,wBAAwB,CAAC;IACtC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,CAAC,CAyBD;AAED,wBAAsB,6BAA6B,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC;IACzF,WAAW,EAAE,wBAAwB,CAAC;IACtC,aAAa,EAAE,mBAAmB,CAAC;IACnC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,CAAC,CAgBD"}
@@ -0,0 +1,56 @@
1
+ import { collectGitWorkingEnvironment } from './git.js';
2
+ import { collectCodingWorkspaceTree } from './workspace-tree.js';
3
+ export async function collectCodingWorkingEnvironment(input) {
4
+ const sources = [{
5
+ kind: 'filesystem',
6
+ path: input.workspaceRoot,
7
+ note: 'workspace root',
8
+ }];
9
+ const limits = [];
10
+ const gitResult = await collectGitWorkingEnvironment(input.workspaceRoot);
11
+ sources.push(...gitResult.sources);
12
+ limits.push(...gitResult.limits);
13
+ return {
14
+ environment: {
15
+ workspaceRoot: input.workspaceRoot,
16
+ gitRepositoryRoot: gitResult.environment.gitRepositoryRoot,
17
+ gitBranch: gitResult.environment.gitBranch,
18
+ gitShortCommit: gitResult.environment.gitShortCommit,
19
+ isGitRepository: gitResult.environment.isGitRepository,
20
+ isDirty: gitResult.environment.isDirty,
21
+ paths: gitResult.environment.paths,
22
+ },
23
+ sources,
24
+ limits,
25
+ };
26
+ }
27
+ export async function collectCodingProjectDashboard(input) {
28
+ const [environmentResult, treeResult] = await Promise.all([
29
+ collectCodingWorkingEnvironment(input),
30
+ collectCodingWorkspaceTree({
31
+ workspaceRoot: input.workspaceRoot,
32
+ maxDepth: input.maxDepth,
33
+ maxEntries: input.maxEntries,
34
+ }),
35
+ ]);
36
+ return {
37
+ environment: environmentResult.environment,
38
+ workspaceTree: treeResult.tree,
39
+ sources: mergeSources(environmentResult.sources, treeResult.sources),
40
+ limits: [...environmentResult.limits, ...treeResult.limits],
41
+ };
42
+ }
43
+ function mergeSources(left, right) {
44
+ const seen = new Set();
45
+ const merged = [];
46
+ for (const source of [...left, ...right]) {
47
+ const key = `${source.kind}|${source.command ?? ''}|${source.path ?? ''}|${source.note ?? ''}`;
48
+ if (seen.has(key)) {
49
+ continue;
50
+ }
51
+ seen.add(key);
52
+ merged.push(source);
53
+ }
54
+ return merged;
55
+ }
56
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../../../../../../src/core/awareness/domains/coding/collectors/workspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,KAA4B;IAKhF,MAAM,OAAO,GAAsB,CAAC;YAClC,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,KAAK,CAAC,aAAa;YACzB,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAC;IACH,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,MAAM,SAAS,GAAG,MAAM,4BAA4B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,OAAO;QACL,WAAW,EAAE;YACX,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,iBAAiB,EAAE,SAAS,CAAC,WAAW,CAAC,iBAAiB;YAC1D,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,SAAS;YAC1C,cAAc,EAAE,SAAS,CAAC,WAAW,CAAC,cAAc;YACpD,eAAe,EAAE,SAAS,CAAC,WAAW,CAAC,eAAe;YACtD,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO;YACtC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,KAAK;SACnC;QACD,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,KAA4B;IAM9E,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxD,+BAA+B,CAAC,KAAK,CAAC;QACtC,0BAA0B,CAAC;YACzB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,WAAW,EAAE,iBAAiB,CAAC,WAAW;QAC1C,aAAa,EAAE,UAAU,CAAC,IAAI;QAC9B,OAAO,EAAE,YAAY,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;QACpE,MAAM,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,IAAuB,EACvB,KAAwB;IAExB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QAC/F,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CodingAwarenessSnapshot, CodingProjectDashboardOutput } from './types.js';
2
+ export declare function formatCodingProjectDashboardSnapshot(snapshot: CodingAwarenessSnapshot): CodingProjectDashboardOutput;
3
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,22 @@
1
+ export function formatCodingProjectDashboardSnapshot(snapshot) {
2
+ const sections = {};
3
+ for (const section of snapshot.sections) {
4
+ if (section.type === 'working_environment') {
5
+ sections.working_environment = section.data;
6
+ }
7
+ if (section.type === 'workspace_tree') {
8
+ sections.workspace_tree = section.data;
9
+ }
10
+ }
11
+ return {
12
+ schemaVersion: 1,
13
+ domain: 'coding',
14
+ profile: 'project_dashboard',
15
+ collectedAt: snapshot.collectedAt,
16
+ workspaceRoot: snapshot.workspaceRoot,
17
+ sections,
18
+ sources: snapshot.sources,
19
+ limits: snapshot.limits,
20
+ };
21
+ }
22
+ //# sourceMappingURL=format.js.map
@@ -0,0 +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"}
@@ -0,0 +1,8 @@
1
+ import type { AwarenessProvider } from '../../types.js';
2
+ import type { CodingAwarenessSnapshot } from './types.js';
3
+ export type CodingAwarenessProviderOptions = {
4
+ now?: () => Date;
5
+ nextId?: () => string;
6
+ };
7
+ export declare function createCodingAwarenessProvider(options?: CodingAwarenessProviderOptions): AwarenessProvider<CodingAwarenessSnapshot['sections'][number]>;
8
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,42 @@
1
+ import { collectCodingProjectDashboard } from './collectors/workspace.js';
2
+ export function createCodingAwarenessProvider(options = {}) {
3
+ return {
4
+ domain: 'coding',
5
+ async collect(input) {
6
+ if (input.profile !== 'project_dashboard') {
7
+ throw new Error(`Unsupported coding awareness profile: ${input.profile}`);
8
+ }
9
+ const collectedAt = (options.now ?? (() => new Date()))().toISOString();
10
+ const id = (options.nextId ?? defaultNextId)();
11
+ const collected = await collectCodingProjectDashboard(input);
12
+ const requestedSections = new Set(input.requestedSections ?? ['working_environment', 'workspace_tree']);
13
+ const sections = [];
14
+ if (requestedSections.has('working_environment')) {
15
+ sections.push({
16
+ type: 'working_environment',
17
+ data: collected.environment,
18
+ });
19
+ }
20
+ if (requestedSections.has('workspace_tree')) {
21
+ sections.push({
22
+ type: 'workspace_tree',
23
+ data: collected.workspaceTree,
24
+ });
25
+ }
26
+ return {
27
+ id,
28
+ domain: 'coding',
29
+ profile: 'project_dashboard',
30
+ collectedAt,
31
+ workspaceRoot: input.workspaceRoot,
32
+ sections,
33
+ sources: collected.sources,
34
+ limits: collected.limits,
35
+ };
36
+ },
37
+ };
38
+ }
39
+ function defaultNextId() {
40
+ return `awareness-${Math.random().toString(36).slice(2, 10)}`;
41
+ }
42
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +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"}
@@ -0,0 +1,56 @@
1
+ import type { AwarenessSnapshot } from '../../types.js';
2
+ export type CodingWorkingTreePathGroup = {
3
+ staged: string[];
4
+ modified: string[];
5
+ deleted: string[];
6
+ untracked: string[];
7
+ renamed: Array<{
8
+ from: string;
9
+ to: string;
10
+ }>;
11
+ };
12
+ export type CodingWorkingEnvironment = {
13
+ workspaceRoot: string;
14
+ gitRepositoryRoot?: string;
15
+ gitBranch?: string;
16
+ gitShortCommit?: string;
17
+ isGitRepository: boolean;
18
+ isDirty: boolean;
19
+ paths: CodingWorkingTreePathGroup;
20
+ };
21
+ export type CodingWorkspaceTreeEntry = {
22
+ path: string;
23
+ kind: 'file' | 'directory';
24
+ children?: CodingWorkspaceTreeEntry[];
25
+ truncated?: boolean;
26
+ };
27
+ export type CodingWorkspaceTree = {
28
+ root: string;
29
+ maxDepth: number;
30
+ maxEntries: number;
31
+ entries: CodingWorkspaceTreeEntry[];
32
+ };
33
+ export type CodingWorkingEnvironmentSection = {
34
+ type: 'working_environment';
35
+ data: CodingWorkingEnvironment;
36
+ };
37
+ export type CodingWorkspaceTreeSection = {
38
+ type: 'workspace_tree';
39
+ data: CodingWorkspaceTree;
40
+ };
41
+ export type CodingAwarenessSection = CodingWorkingEnvironmentSection | CodingWorkspaceTreeSection;
42
+ export type CodingProjectDashboardOutput = {
43
+ schemaVersion: 1;
44
+ domain: 'coding';
45
+ profile: 'project_dashboard';
46
+ collectedAt: string;
47
+ workspaceRoot: string;
48
+ sections: Partial<{
49
+ working_environment: CodingWorkingEnvironment;
50
+ workspace_tree: CodingWorkspaceTree;
51
+ }>;
52
+ sources: AwarenessSnapshot['sources'];
53
+ limits: AwarenessSnapshot['limits'];
54
+ };
55
+ export type CodingAwarenessSnapshot = AwarenessSnapshot<CodingAwarenessSection>;
56
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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"}
@@ -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/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { AwarenessLimit, AwarenessSource } from './types.js';
2
+ export declare function formatAwarenessMetadata(args: {
3
+ collectedAt: string;
4
+ sources: AwarenessSource[];
5
+ limits: AwarenessLimit[];
6
+ }): string;
7
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/core/awareness/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,GAAG,MAAM,CA4BT"}
@@ -0,0 +1,27 @@
1
+ export function formatAwarenessMetadata(args) {
2
+ const lines = [`Collected: ${args.collectedAt}`];
3
+ if (args.sources.length > 0) {
4
+ lines.push('Sources:');
5
+ for (const source of args.sources) {
6
+ const parts = [source.kind];
7
+ if (source.command) {
8
+ parts.push(`command=${source.command}`);
9
+ }
10
+ if (source.path) {
11
+ parts.push(`path=${source.path}`);
12
+ }
13
+ if (source.note) {
14
+ parts.push(source.note);
15
+ }
16
+ lines.push(`- ${parts.join('; ')}`);
17
+ }
18
+ }
19
+ if (args.limits.length > 0) {
20
+ lines.push('Limits:');
21
+ for (const limit of args.limits) {
22
+ lines.push(`- ${limit.kind} ${limit.subject}: ${limit.detail}`);
23
+ }
24
+ }
25
+ return lines.join('\n');
26
+ }
27
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../src/core/awareness/format.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,IAIvC;IACC,MAAM,KAAK,GAAG,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAEjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,KAAK,GAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { createAwarenessService } from './service.js';
2
+ export { appendAwarenessDomainSystemContext, buildAwarenessDomainSystemContext, } from './domain-prompt.js';
3
+ export type { AwarenessCollectInput, AwarenessDomain, AwarenessLimit, AwarenessProfile, AwarenessProvider, AwarenessSnapshot, AwarenessSource, } from './types.js';
4
+ export { createCodingAwarenessProvider } from './domains/coding/provider.js';
5
+ export { formatCodingProjectDashboardSnapshot } from './domains/coding/format.js';
6
+ export type { CodingAwarenessSection, CodingAwarenessSnapshot, CodingProjectDashboardOutput, CodingWorkingEnvironment, CodingWorkspaceTree, CodingWorkspaceTreeEntry, } from './domains/coding/types.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/awareness/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,kCAAkC,EAClC,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAClF,YAAY,EACV,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { createAwarenessService } from './service.js';
2
+ export { appendAwarenessDomainSystemContext, buildAwarenessDomainSystemContext, } from './domain-prompt.js';
3
+ export { createCodingAwarenessProvider } from './domains/coding/provider.js';
4
+ export { formatCodingProjectDashboardSnapshot } from './domains/coding/format.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/awareness/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,kCAAkC,EAClC,iCAAiC,GAClC,MAAM,oBAAoB,CAAC;AAU5B,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { AwarenessCollectInput, AwarenessProvider, AwarenessSnapshot } from './types.js';
2
+ export type AwarenessService = {
3
+ collect<Section = unknown>(input: AwarenessCollectInput): Promise<AwarenessSnapshot<Section>>;
4
+ };
5
+ export declare function createAwarenessService(args: {
6
+ providers: ReadonlyArray<AwarenessProvider>;
7
+ }): AwarenessService;
8
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/awareness/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE9F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,OAAO,GAAG,OAAO,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/F,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,SAAS,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CAC7C,GAAG,gBAAgB,CAanB"}
@@ -0,0 +1,13 @@
1
+ export function createAwarenessService(args) {
2
+ const providersByDomain = new Map(args.providers.map((provider) => [provider.domain, provider]));
3
+ return {
4
+ async collect(input) {
5
+ const provider = providersByDomain.get(input.domain);
6
+ if (!provider) {
7
+ throw new Error(`No awareness provider registered for domain: ${input.domain}`);
8
+ }
9
+ return provider.collect(input);
10
+ },
11
+ };
12
+ }
13
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../src/core/awareness/service.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,sBAAsB,CAAC,IAEtC;IACC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjG,OAAO;QACL,KAAK,CAAC,OAAO,CAAoB,KAA4B;YAC3D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,gDAAgD,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAClF,CAAC;YAED,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAwC,CAAC;QACxE,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ export type AwarenessDomain = 'coding';
2
+ export type AwarenessProfile = 'project_dashboard';
3
+ export type AwarenessSource = {
4
+ kind: 'filesystem' | 'git' | 'runtime_config';
5
+ command?: string;
6
+ path?: string;
7
+ note?: string;
8
+ };
9
+ export type AwarenessLimit = {
10
+ kind: 'truncated' | 'unavailable' | 'omitted' | 'permission' | 'not_applicable';
11
+ subject: string;
12
+ detail: string;
13
+ };
14
+ export type AwarenessSnapshot<Section = unknown> = {
15
+ id: string;
16
+ domain: AwarenessDomain;
17
+ profile: AwarenessProfile;
18
+ collectedAt: string;
19
+ workspaceRoot: string;
20
+ sections: Section[];
21
+ sources: AwarenessSource[];
22
+ limits: AwarenessLimit[];
23
+ };
24
+ export type AwarenessCollectInput = {
25
+ domain: AwarenessDomain;
26
+ workspaceRoot: string;
27
+ stateRoot?: string;
28
+ profile: AwarenessProfile;
29
+ requestedSections?: string[];
30
+ maxDepth?: number;
31
+ maxEntries?: number;
32
+ };
33
+ export type AwarenessProvider<Section = unknown> = {
34
+ domain: AwarenessDomain;
35
+ collect(input: AwarenessCollectInput): Promise<AwarenessSnapshot<Section>>;
36
+ };
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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"}
@@ -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/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import type { ChatSession } from '../../../types.js';
2
+ import type { ReasoningEffort } from '../../../../llm/types.js';
3
+ export type SessionExecutionPreferences = {
4
+ model: string;
5
+ reasoningEffort?: ReasoningEffort;
6
+ };
7
+ export declare function resolveStoredSessionExecutionPreferences(args: {
8
+ stored?: Pick<ChatSession, 'model' | 'reasoningEffort'>;
9
+ defaultModel: string;
10
+ }): SessionExecutionPreferences;
11
+ export declare function resolveNewSessionExecutionPreferences(args: {
12
+ defaultModel: string;
13
+ inherited?: Partial<SessionExecutionPreferences>;
14
+ }): SessionExecutionPreferences;
15
+ export declare function resolveEffectiveReasoningEffort(args: {
16
+ model: string;
17
+ reasoningEffort?: ReasoningEffort;
18
+ }): ReasoningEffort | undefined;
19
+ export declare function formatSessionReasoningEffortStatus(args: {
20
+ model: string;
21
+ reasoningEffort?: ReasoningEffort;
22
+ }): string;
23
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/chat/engine/sessions/preferences/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAEF,wBAAgB,wCAAwC,CAAC,IAAI,EAAE;IAC7D,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,iBAAiB,CAAC,CAAC;IACxD,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,2BAA2B,CAK9B;AAED,wBAAgB,qCAAqC,CAAC,IAAI,EAAE;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAClD,GAAG,2BAA2B,CAK9B;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,eAAe,GAAG,SAAS,CAE9B;AAED,wBAAgB,kCAAkC,CAAC,IAAI,EAAE;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,MAAM,CAWT"}
@@ -0,0 +1,29 @@
1
+ import { resolveDefaultReasoningEffort, supportsReasoningEffort } from '../../../../llm/model-policy.js';
2
+ export function resolveStoredSessionExecutionPreferences(args) {
3
+ return {
4
+ model: args.stored?.model ?? args.defaultModel,
5
+ reasoningEffort: args.stored?.reasoningEffort,
6
+ };
7
+ }
8
+ export function resolveNewSessionExecutionPreferences(args) {
9
+ return {
10
+ model: args.inherited?.model ?? args.defaultModel,
11
+ reasoningEffort: args.inherited?.reasoningEffort,
12
+ };
13
+ }
14
+ export function resolveEffectiveReasoningEffort(args) {
15
+ return args.reasoningEffort ?? resolveDefaultReasoningEffort(args.model);
16
+ }
17
+ export function formatSessionReasoningEffortStatus(args) {
18
+ const supported = supportsReasoningEffort(args.model);
19
+ const effective = resolveEffectiveReasoningEffort(args);
20
+ return [
21
+ `Current model: ${args.model}`,
22
+ `Reasoning effort support: ${supported ? 'supported' : 'unsupported'}`,
23
+ `Configured effort: ${args.reasoningEffort ?? 'default'}`,
24
+ `Effective effort: ${effective ?? 'none'}`,
25
+ '',
26
+ 'Use /reasoning set to choose an effort, or /reasoning default to clear it.',
27
+ ].join('\n');
28
+ }
29
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../../../../../src/core/chat/engine/sessions/preferences/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAQzG,MAAM,UAAU,wCAAwC,CAAC,IAGxD;IACC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY;QAC9C,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,eAAe;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,IAGrD;IACC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY;QACjD,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,IAG/C;IACC,OAAO,IAAI,CAAC,eAAe,IAAI,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,IAGlD;IACC,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO;QACL,kBAAkB,IAAI,CAAC,KAAK,EAAE;QAC9B,6BAA6B,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE;QACtE,sBAAsB,IAAI,CAAC,eAAe,IAAI,SAAS,EAAE;QACzD,qBAAqB,SAAS,IAAI,MAAM,EAAE;QAC1C,EAAE;QACF,4EAA4E;KAC7E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/core/chat/engine/turns/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAKL,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AAGtC,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,GAAG,EAAE,UAAU,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,eAAe,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,GAAG,iBAAiB,CAAC,CAAC;CACnE,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,GAAG,iBAAiB,CAAC,CAAC;CACnE,GAAG,MAAM,CAGT;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,kCAAkC,GAAG,eAAe,CAwCxG"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../../../src/core/chat/engine/turns/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAKL,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AAItC,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,GAAG,EAAE,UAAU,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,eAAe,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,GAAG,iBAAiB,CAAC,CAAC;CACnE,CAAC;AAEF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,GAAG,iBAAiB,CAAC,CAAC;CACnE,GAAG,MAAM,CAGT;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,kCAAkC,GAAG,eAAe,CAwCxG"}
@@ -3,6 +3,7 @@ import { DEFAULT_OPENAI_MODEL } from '../../../config.js';
3
3
  import { createLlmAdapter } from '../../../llm/factory.js';
4
4
  import { inferProviderFromModel } from '../../../llm/providers.js';
5
5
  import { formatMissingProviderCredentialMessage, hasProviderCredentialForModel, resolveApiKeyForModel, resolveProviderCredentialSourceForModel, } from '../../../runtime/api-keys.js';
6
+ import { appendAwarenessDomainSystemContext } from '../../../awareness/domain-prompt.js';
6
7
  import { appendMemoryCatalogSystemContext } from '../../../memory/catalog.js';
7
8
  export function resolveConversationTurnModel(args) {
8
9
  const env = args.env ?? process.env;
@@ -34,10 +35,10 @@ export function resolveConversationTurnRuntime(args) {
34
35
  apiKey,
35
36
  providerCredentialSource,
36
37
  memoryDir,
37
- systemContext: appendMemoryCatalogSystemContext({
38
+ systemContext: appendAwarenessDomainSystemContext(appendMemoryCatalogSystemContext({
38
39
  systemContext: args.systemContext,
39
40
  memoryRoot: memoryDir,
40
- }),
41
+ })),
41
42
  reasoningEffort: args.sessionReasoningEffort,
42
43
  llm: createLlmAdapter({
43
44
  model,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../../../src/core/chat/engine/turns/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EACL,sCAAsC,EACtC,6BAA6B,EAC7B,qBAAqB,EACrB,uCAAuC,GAExC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAwB9E,MAAM,UAAU,4BAA4B,CAAC,IAG5C;IACC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,OAAO,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,eAAe,IAAI,oBAAoB,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAAwC;IACrF,MAAM,KAAK,GAAG,4BAA4B,CAAC;QACzC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,qBAAqB,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IAChG,MAAM,wBAAwB,GAAG,uCAAuC,CAAC,KAAK,EAAE;QAC9E,MAAM;QACN,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACxE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC,CAAC;IAEH,gCAAgC,CAAC;QAC/B,KAAK;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjD,OAAO;QACL,KAAK;QACL,QAAQ;QACR,MAAM;QACN,wBAAwB;QACxB,SAAS;QACT,aAAa,EAAE,gCAAgC,CAAC;YAC9C,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,UAAU,EAAE,SAAS;SACtB,CAAC;QACF,eAAe,EAAE,IAAI,CAAC,sBAAsB;QAC5C,GAAG,EAAE,gBAAgB,CAAC;YACpB,KAAK;YACL,MAAM;YACN,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,eAAe,EAAE,IAAI,CAAC,sBAAsB;SAC7C,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CAAC,IAKzC;IACC,MAAM,aAAa,GAAG,6BAA6B,CAAC,IAAI,CAAC,KAAK,EAAE;QAC9D,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACpD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../../../src/core/chat/engine/turns/runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"model-commands.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/commands/slash/modules/model/model-commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAYlE,eAAO,MAAM,kBAAkB,QAA+E,CAAC;AAC/G,eAAO,MAAM,sBAAsB,sFAAsF,CAAC;AAC1H,eAAO,MAAM,0BAA0B,qGAAqG,CAAC;AAO7I,wBAAgB,6BAA6B,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAyCpH;AAED,wBAAgB,iCAAiC,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAgCxH"}
1
+ {"version":3,"file":"model-commands.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/commands/slash/modules/model/model-commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAelE,eAAO,MAAM,kBAAkB,QAA+E,CAAC;AAC/G,eAAO,MAAM,sBAAsB,sFAAsF,CAAC;AAC1H,eAAO,MAAM,0BAA0B,qGAAqG,CAAC;AAO7I,wBAAgB,6BAA6B,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAyCpH;AAED,wBAAgB,iCAAiC,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAmCxH"}
@@ -1,7 +1,8 @@
1
1
  import { matchesAnyExactSlashCommand, matchesExactSlashCommand, matchesSlashCommandPrefix } from '../../parser.js';
2
2
  import { argumentAfterPrefix, slashMessageResult } from '../results.js';
3
3
  import { COMMON_BUILT_IN_MODELS, formatBuiltInModelGroups } from '../../../../llm/openai-models.js';
4
- import { credentialModeFromSource, resolveDefaultReasoningEffort, supportsOpenAiRequestReasoningEffort, supportsReasoningEffort, validateModelCredentialCompatibility, } from '../../../../llm/model-policy.js';
4
+ import { credentialModeFromSource, supportsOpenAiRequestReasoningEffort, supportsReasoningEffort, validateModelCredentialCompatibility, } from '../../../../llm/model-policy.js';
5
+ import { formatSessionReasoningEffortStatus, resolveEffectiveReasoningEffort, } from '../../../../chat/engine/sessions/preferences/service.js';
5
6
  export const MODEL_LIST_MESSAGE = ['Common built-in model choices', '', formatBuiltInModelGroups()].join('\n');
6
7
  export const MODEL_SET_HELP_MESSAGE = 'Use /model set <query> to filter models, then use arrows and Enter to choose one.';
7
8
  export const REASONING_SET_HELP_MESSAGE = 'Use /reasoning set <query> to filter reasoning efforts, then use arrows and Enter to choose one.';
@@ -65,7 +66,10 @@ export function createReasoningSlashCommandModule() {
65
66
  syntax: '/reasoning',
66
67
  description: 'show reasoning effort for the current session',
67
68
  match: matchesExactSlashCommand('/reasoning'),
68
- run: (context) => slashMessageResult(formatReasoningEffortStatus(context.model.active(), context.model.activeReasoningEffort())),
69
+ run: (context) => slashMessageResult(formatSessionReasoningEffortStatus({
70
+ model: context.model.active(),
71
+ reasoningEffort: context.model.activeReasoningEffort(),
72
+ })),
69
73
  },
70
74
  {
71
75
  id: 'reasoning.set.help',
@@ -108,12 +112,18 @@ function switchModel(context, value) {
108
112
  function setReasoningEffort(context, value) {
109
113
  const normalized = value.trim().toLowerCase();
110
114
  if (!normalized) {
111
- return slashMessageResult(formatReasoningEffortStatus(context.model.active(), context.model.activeReasoningEffort()));
115
+ return slashMessageResult(formatSessionReasoningEffortStatus({
116
+ model: context.model.active(),
117
+ reasoningEffort: context.model.activeReasoningEffort(),
118
+ }));
112
119
  }
113
120
  const selected = normalized.startsWith('set ') ? normalized.slice('set '.length).trim() : normalized;
114
121
  if (selected === 'default') {
115
122
  context.model.setReasoningEffort(undefined);
116
- return slashMessageResult(`Cleared explicit reasoning effort for ${context.model.active()}. Effective default: ${resolveDefaultReasoningEffort(context.model.active()) ?? 'not supported'}.`);
123
+ return slashMessageResult(`Cleared explicit reasoning effort for ${context.model.active()}. Effective default: ${resolveEffectiveReasoningEffort({
124
+ model: context.model.active(),
125
+ reasoningEffort: undefined,
126
+ }) ?? 'not supported'}.`);
117
127
  }
118
128
  if (!isReasoningEffort(selected)) {
119
129
  return slashMessageResult('Usage: /reasoning set <query> or /reasoning <low|medium|high|default>');
@@ -130,18 +140,6 @@ function setReasoningEffort(context, value) {
130
140
  context.model.setReasoningEffort(selected);
131
141
  return slashMessageResult(`Set reasoning effort to ${selected} for ${context.model.active()}.`);
132
142
  }
133
- function formatReasoningEffortStatus(model, explicitEffort) {
134
- const supported = supportsReasoningEffort(model);
135
- const effective = explicitEffort ?? resolveDefaultReasoningEffort(model);
136
- return [
137
- `Current model: ${model}`,
138
- `Reasoning effort support: ${supported ? 'supported' : 'unsupported'}`,
139
- `Configured effort: ${explicitEffort ?? 'default'}`,
140
- `Effective effort: ${effective ?? 'none'}`,
141
- '',
142
- 'Use /reasoning set to choose an effort, or /reasoning default to clear it.',
143
- ].join('\n');
144
- }
145
143
  function isReasoningEffort(value) {
146
144
  return value === 'low' || value === 'medium' || value === 'high' || value === 'ultrahigh';
147
145
  }