@telora/daemon 0.19.7 → 0.19.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-info.json +8 -3
- package/dist/audit-phase.d.ts +8 -0
- package/dist/audit-phase.d.ts.map +1 -1
- package/dist/audit-phase.js +47 -0
- package/dist/audit-phase.js.map +1 -1
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +35 -1
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/team-completion.d.ts.map +1 -1
- package/dist/completion/team-completion.js +24 -0
- package/dist/completion/team-completion.js.map +1 -1
- package/dist/context-audit.d.ts +68 -0
- package/dist/context-audit.d.ts.map +1 -0
- package/dist/context-audit.js +64 -0
- package/dist/context-audit.js.map +1 -0
- package/dist/context-lock.d.ts +129 -0
- package/dist/context-lock.d.ts.map +1 -0
- package/dist/context-lock.js +143 -0
- package/dist/context-lock.js.map +1 -0
- package/dist/focus-executor.js +1 -1
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-phase.d.ts +24 -0
- package/dist/focus-phase.d.ts.map +1 -1
- package/dist/focus-phase.js +30 -0
- package/dist/focus-phase.js.map +1 -1
- package/dist/git-merge-strategies.d.ts +10 -0
- package/dist/git-merge-strategies.d.ts.map +1 -1
- package/dist/git-merge-strategies.js +10 -0
- package/dist/git-merge-strategies.js.map +1 -1
- package/dist/listener-auto-advance.d.ts +39 -0
- package/dist/listener-auto-advance.d.ts.map +1 -1
- package/dist/listener-auto-advance.js +88 -0
- package/dist/listener-auto-advance.js.map +1 -1
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +6 -1
- package/dist/listener.js.map +1 -1
- package/dist/loop-context-audit-pass.d.ts +89 -0
- package/dist/loop-context-audit-pass.d.ts.map +1 -0
- package/dist/loop-context-audit-pass.js +199 -0
- package/dist/loop-context-audit-pass.js.map +1 -0
- package/dist/loop-engine.d.ts.map +1 -1
- package/dist/loop-engine.js +14 -0
- package/dist/loop-engine.js.map +1 -1
- package/dist/loop-variance.d.ts +9 -0
- package/dist/loop-variance.d.ts.map +1 -1
- package/dist/loop-variance.js +35 -0
- package/dist/loop-variance.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +26 -0
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/queries/context-lock-queries.d.ts +44 -0
- package/dist/queries/context-lock-queries.d.ts.map +1 -0
- package/dist/queries/context-lock-queries.js +74 -0
- package/dist/queries/context-lock-queries.js.map +1 -0
- package/dist/queries/embedding-config.d.ts +52 -0
- package/dist/queries/embedding-config.d.ts.map +1 -0
- package/dist/queries/embedding-config.js +59 -0
- package/dist/queries/embedding-config.js.map +1 -0
- package/dist/queries/index.d.ts +8 -0
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +4 -0
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/loop-anchor.d.ts +44 -0
- package/dist/queries/loop-anchor.d.ts.map +1 -0
- package/dist/queries/loop-anchor.js +54 -0
- package/dist/queries/loop-anchor.js.map +1 -0
- package/dist/queries/loop-document-neighbors.d.ts +38 -0
- package/dist/queries/loop-document-neighbors.d.ts.map +1 -0
- package/dist/queries/loop-document-neighbors.js +38 -0
- package/dist/queries/loop-document-neighbors.js.map +1 -0
- package/dist/queries/schemas.d.ts +54 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +46 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/reality-pole-capture.d.ts +66 -0
- package/dist/reality-pole-capture.d.ts.map +1 -0
- package/dist/reality-pole-capture.js +111 -0
- package/dist/reality-pole-capture.js.map +1 -0
- package/dist/reality-pole.d.ts +62 -0
- package/dist/reality-pole.d.ts.map +1 -0
- package/dist/reality-pole.js +90 -0
- package/dist/reality-pole.js.map +1 -0
- package/dist/resolvers/loop-context.d.ts +9 -0
- package/dist/resolvers/loop-context.d.ts.map +1 -1
- package/dist/resolvers/loop-context.js +41 -5
- package/dist/resolvers/loop-context.js.map +1 -1
- package/dist/team-prompt-base.d.ts.map +1 -1
- package/dist/team-prompt-base.js +1 -0
- package/dist/team-prompt-base.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reality pole: a loop-context item's anchor to the DURABLE CODE STRUCTURE it
|
|
3
|
+
* touches (the files a delivery changed) plus an embedding of that footprint.
|
|
4
|
+
*
|
|
5
|
+
* Embeddings here measure ABOUTNESS, not agreement: the reality pole is the
|
|
6
|
+
* code an item is about, used to compute topical DISTANCE (a drift tripwire),
|
|
7
|
+
* never a truth oracle. Two items pointing at the same files are "near" in this
|
|
8
|
+
* space whether or not they agree.
|
|
9
|
+
*
|
|
10
|
+
* The daemon has NO direct Supabase client and NO access to the embedding API
|
|
11
|
+
* key. So this module computes the git footprint locally and hands it to ONE
|
|
12
|
+
* edge action (daemon_loop_anchor_upsert) that upserts the anchor, embeds the
|
|
13
|
+
* footprint edge-side, and stores the vector. The daemon NEVER embeds directly.
|
|
14
|
+
*/
|
|
15
|
+
import { callApi as defaultCallApi } from './queries/shared.js';
|
|
16
|
+
/** A loop-context item type that can carry a reality anchor. */
|
|
17
|
+
export type AnchorItemType = 'document' | 'answer';
|
|
18
|
+
/**
|
|
19
|
+
* Build the embed input string from a footprint's file paths.
|
|
20
|
+
*
|
|
21
|
+
* PURE -- no IO. Deterministic: the paths are de-duplicated, sorted, and
|
|
22
|
+
* newline-joined so the same footprint always yields the same input (and thus
|
|
23
|
+
* the same reality-pole embedding). Capped to a sane length.
|
|
24
|
+
*
|
|
25
|
+
* The embedding of this string is the reality pole -- a measure of what code
|
|
26
|
+
* the item is ABOUT, for distance/drift, not a measure of correctness.
|
|
27
|
+
*/
|
|
28
|
+
export declare function footprintToEmbedInput(files: string[]): string;
|
|
29
|
+
/**
|
|
30
|
+
* Get the changed files on the delivery branch vs the base branch.
|
|
31
|
+
*
|
|
32
|
+
* Runs `git diff --name-only <baseBranch>...HEAD` in the worktree (the merge-base
|
|
33
|
+
* three-dot form, mirroring getGitDiff in resolvers/shared/git-diff.ts) and
|
|
34
|
+
* returns the changed file paths. Returns [] on any git failure -- NEVER throws.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getDeliveryFootprint(worktreePath: string, baseBranch: string): string[];
|
|
37
|
+
export interface WriteRealityAnchorArgs {
|
|
38
|
+
organizationId: string;
|
|
39
|
+
itemType: AnchorItemType;
|
|
40
|
+
itemId: string;
|
|
41
|
+
files: string[];
|
|
42
|
+
sourceDeliveryId?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface WriteRealityAnchorOptions {
|
|
45
|
+
/** Injectable API caller (for tests). Defaults to the real `callApi`. */
|
|
46
|
+
callApi?: typeof defaultCallApi;
|
|
47
|
+
}
|
|
48
|
+
export interface WriteRealityAnchorResult {
|
|
49
|
+
anchorId: string | null;
|
|
50
|
+
embedded: boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Write a loop-context item's reality anchor through the edge action.
|
|
54
|
+
*
|
|
55
|
+
* Builds the embed input from the footprint (footprintToEmbedInput) and calls
|
|
56
|
+
* daemon_loop_anchor_upsert, which upserts the anchor row AND embeds the
|
|
57
|
+
* footprint edge-side. Fail-open: on ANY error returns
|
|
58
|
+
* { anchorId: null, embedded: false } rather than throwing -- a missing anchor
|
|
59
|
+
* degrades the churn-clock signal, it never wedges the caller.
|
|
60
|
+
*/
|
|
61
|
+
export declare function writeRealityAnchor(args: WriteRealityAnchorArgs, opts?: WriteRealityAnchorOptions): Promise<WriteRealityAnchorResult>;
|
|
62
|
+
//# sourceMappingURL=reality-pole.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reality-pole.d.ts","sourceRoot":"","sources":["../src/reality-pole.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEhE,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AASnD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAa7D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAcvF;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAWD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,sBAAsB,EAC5B,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,wBAAwB,CAAC,CAqBnC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reality pole: a loop-context item's anchor to the DURABLE CODE STRUCTURE it
|
|
3
|
+
* touches (the files a delivery changed) plus an embedding of that footprint.
|
|
4
|
+
*
|
|
5
|
+
* Embeddings here measure ABOUTNESS, not agreement: the reality pole is the
|
|
6
|
+
* code an item is about, used to compute topical DISTANCE (a drift tripwire),
|
|
7
|
+
* never a truth oracle. Two items pointing at the same files are "near" in this
|
|
8
|
+
* space whether or not they agree.
|
|
9
|
+
*
|
|
10
|
+
* The daemon has NO direct Supabase client and NO access to the embedding API
|
|
11
|
+
* key. So this module computes the git footprint locally and hands it to ONE
|
|
12
|
+
* edge action (daemon_loop_anchor_upsert) that upserts the anchor, embeds the
|
|
13
|
+
* footprint edge-side, and stores the vector. The daemon NEVER embeds directly.
|
|
14
|
+
*/
|
|
15
|
+
import { runGitSync } from './git-types.js';
|
|
16
|
+
import { callApi as defaultCallApi } from './queries/shared.js';
|
|
17
|
+
/**
|
|
18
|
+
* Cap on the embed input length. The footprint is file paths, not file
|
|
19
|
+
* contents, so this is generous -- it only guards against a pathological
|
|
20
|
+
* delivery touching thousands of files.
|
|
21
|
+
*/
|
|
22
|
+
const EMBED_INPUT_CHAR_LIMIT = 20000;
|
|
23
|
+
/**
|
|
24
|
+
* Build the embed input string from a footprint's file paths.
|
|
25
|
+
*
|
|
26
|
+
* PURE -- no IO. Deterministic: the paths are de-duplicated, sorted, and
|
|
27
|
+
* newline-joined so the same footprint always yields the same input (and thus
|
|
28
|
+
* the same reality-pole embedding). Capped to a sane length.
|
|
29
|
+
*
|
|
30
|
+
* The embedding of this string is the reality pole -- a measure of what code
|
|
31
|
+
* the item is ABOUT, for distance/drift, not a measure of correctness.
|
|
32
|
+
*/
|
|
33
|
+
export function footprintToEmbedInput(files) {
|
|
34
|
+
const unique = Array.from(new Set(files
|
|
35
|
+
.filter((f) => typeof f === 'string')
|
|
36
|
+
.map((f) => f.trim())
|
|
37
|
+
.filter((f) => f.length > 0))).sort();
|
|
38
|
+
const joined = unique.join('\n');
|
|
39
|
+
return joined.length <= EMBED_INPUT_CHAR_LIMIT
|
|
40
|
+
? joined
|
|
41
|
+
: joined.slice(0, EMBED_INPUT_CHAR_LIMIT);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get the changed files on the delivery branch vs the base branch.
|
|
45
|
+
*
|
|
46
|
+
* Runs `git diff --name-only <baseBranch>...HEAD` in the worktree (the merge-base
|
|
47
|
+
* three-dot form, mirroring getGitDiff in resolvers/shared/git-diff.ts) and
|
|
48
|
+
* returns the changed file paths. Returns [] on any git failure -- NEVER throws.
|
|
49
|
+
*/
|
|
50
|
+
export function getDeliveryFootprint(worktreePath, baseBranch) {
|
|
51
|
+
const result = runGitSync(['diff', '--name-only', `${baseBranch}...HEAD`], worktreePath, { timeoutMs: 30_000 });
|
|
52
|
+
if (!result.success) {
|
|
53
|
+
console.warn(`[reality-pole] getDeliveryFootprint failed: ${result.error}`);
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
return result.output
|
|
57
|
+
.split('\n')
|
|
58
|
+
.map((line) => line.trim())
|
|
59
|
+
.filter((line) => line.length > 0);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Write a loop-context item's reality anchor through the edge action.
|
|
63
|
+
*
|
|
64
|
+
* Builds the embed input from the footprint (footprintToEmbedInput) and calls
|
|
65
|
+
* daemon_loop_anchor_upsert, which upserts the anchor row AND embeds the
|
|
66
|
+
* footprint edge-side. Fail-open: on ANY error returns
|
|
67
|
+
* { anchorId: null, embedded: false } rather than throwing -- a missing anchor
|
|
68
|
+
* degrades the churn-clock signal, it never wedges the caller.
|
|
69
|
+
*/
|
|
70
|
+
export async function writeRealityAnchor(args, opts = {}) {
|
|
71
|
+
const call = opts.callApi ?? defaultCallApi;
|
|
72
|
+
try {
|
|
73
|
+
const result = await call('daemon_loop_anchor_upsert', {
|
|
74
|
+
itemType: args.itemType,
|
|
75
|
+
itemId: args.itemId,
|
|
76
|
+
files: args.files,
|
|
77
|
+
sourceDeliveryId: args.sourceDeliveryId ?? null,
|
|
78
|
+
embedText: footprintToEmbedInput(args.files),
|
|
79
|
+
});
|
|
80
|
+
return {
|
|
81
|
+
anchorId: typeof result.anchorId === 'string' ? result.anchorId : null,
|
|
82
|
+
embedded: result.embedded === true,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
console.warn(`[reality-pole] writeRealityAnchor failed for ${args.itemType} ${args.itemId}:`, err instanceof Error ? err.message : String(err));
|
|
87
|
+
return { anchorId: null, embedded: false };
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=reality-pole.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reality-pole.js","sourceRoot":"","sources":["../src/reality-pole.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reorder documents by a semantic-rank id ordering. Documents whose id appears
|
|
3
|
+
* in `rankedIds` are ordered by that rank; documents absent from the ranking
|
|
4
|
+
* (no text/embedding match) keep their original relative order AFTER the ranked
|
|
5
|
+
* ones (sort_order is the floor). Pure -- exported for tests.
|
|
6
|
+
*/
|
|
7
|
+
export declare function reorderDocsByRank<T extends {
|
|
8
|
+
id: string;
|
|
9
|
+
}>(docs: T[], rankedIds: string[]): T[];
|
|
1
10
|
/**
|
|
2
11
|
* loop.context
|
|
3
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-context.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loop-context.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-context.ts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACxD,IAAI,EAAE,CAAC,EAAE,EACT,SAAS,EAAE,MAAM,EAAE,GAClB,CAAC,EAAE,CAQL;AA0GD;;;;;;;;;;;;;;;GAeG;AACH,oGAAoG;AACpG,wBAAgB,2BAA2B,IAAI,IAAI,CA4BlD"}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
2
|
import { callApi } from '../queries/shared.js';
|
|
3
|
+
/**
|
|
4
|
+
* Reorder documents by a semantic-rank id ordering. Documents whose id appears
|
|
5
|
+
* in `rankedIds` are ordered by that rank; documents absent from the ranking
|
|
6
|
+
* (no text/embedding match) keep their original relative order AFTER the ranked
|
|
7
|
+
* ones (sort_order is the floor). Pure -- exported for tests.
|
|
8
|
+
*/
|
|
9
|
+
export function reorderDocsByRank(docs, rankedIds) {
|
|
10
|
+
if (rankedIds.length === 0)
|
|
11
|
+
return docs;
|
|
12
|
+
const rankOf = new Map(rankedIds.map((id, i) => [id, i]));
|
|
13
|
+
return [...docs].sort((a, b) => (rankOf.get(a.id) ?? Number.MAX_SAFE_INTEGER) -
|
|
14
|
+
(rankOf.get(b.id) ?? Number.MAX_SAFE_INTEGER));
|
|
15
|
+
}
|
|
3
16
|
/**
|
|
4
17
|
* Fetch loop data (persona + documents + Q&A) for a single layer.
|
|
5
18
|
* Returns formatted markdown sections, or empty string if no data exists.
|
|
6
19
|
*/
|
|
7
|
-
async function fetchLoopLayerContext(entityType, entityId, layerLabel) {
|
|
20
|
+
async function fetchLoopLayerContext(entityType, entityId, layerLabel, query) {
|
|
8
21
|
const parts = [];
|
|
9
22
|
// Persona
|
|
10
23
|
try {
|
|
@@ -19,7 +32,11 @@ async function fetchLoopLayerContext(entityType, entityId, layerLabel) {
|
|
|
19
32
|
catch {
|
|
20
33
|
// No persona -- not an error
|
|
21
34
|
}
|
|
22
|
-
//
|
|
35
|
+
// Documents. By default these are force-ranked by sort_order. When a relevance
|
|
36
|
+
// query is supplied, we reorder the SAME full documents by semantic similarity
|
|
37
|
+
// (loop_document_search blends text rank + cosine over the embedding). The
|
|
38
|
+
// sort_order order is preserved as the floor: if search fails or returns
|
|
39
|
+
// nothing, or for documents the search did not rank, we keep sort_order.
|
|
23
40
|
try {
|
|
24
41
|
const docsResult = await callApi('loop_document_list', {
|
|
25
42
|
entityType,
|
|
@@ -27,8 +44,24 @@ async function fetchLoopLayerContext(entityType, entityId, layerLabel) {
|
|
|
27
44
|
detail: 'full',
|
|
28
45
|
limit: 50,
|
|
29
46
|
});
|
|
30
|
-
|
|
31
|
-
|
|
47
|
+
let docs = docsResult.items ?? [];
|
|
48
|
+
const trimmedQuery = query?.trim();
|
|
49
|
+
if (trimmedQuery && docs.length > 1) {
|
|
50
|
+
try {
|
|
51
|
+
const search = await callApi('loop_document_search', {
|
|
52
|
+
entityType,
|
|
53
|
+
entityId,
|
|
54
|
+
query: trimmedQuery,
|
|
55
|
+
limit: docs.length,
|
|
56
|
+
});
|
|
57
|
+
docs = reorderDocsByRank(docs, search.items.map((it) => it.id));
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// Search unavailable -- keep sort_order ordering.
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (docs.length > 0) {
|
|
64
|
+
const docLines = docs.map((doc, i) => `#### ${i + 1}. ${doc.title}\n\n${doc.content}`);
|
|
32
65
|
parts.push(`### Documents\n\n${docLines.join('\n\n')}`);
|
|
33
66
|
}
|
|
34
67
|
}
|
|
@@ -96,6 +129,9 @@ async function fetchLoopLayerContext(entityType, entityId, layerLabel) {
|
|
|
96
129
|
export function registerLoopContextResolver() {
|
|
97
130
|
registerSourceResolver('loop.context', async (context, params) => {
|
|
98
131
|
const layerFilter = params.layer;
|
|
132
|
+
// Optional relevance query: when present, documents are reordered by semantic
|
|
133
|
+
// similarity instead of sort_order alone (sort_order remains the fallback).
|
|
134
|
+
const query = params.query;
|
|
99
135
|
const layers = [];
|
|
100
136
|
if (!layerFilter || layerFilter === 'product') {
|
|
101
137
|
layers.push({ entityType: 'product', entityId: context.productId, label: 'Product' });
|
|
@@ -106,7 +142,7 @@ export function registerLoopContextResolver() {
|
|
|
106
142
|
if (!layerFilter || layerFilter === 'delivery') {
|
|
107
143
|
layers.push({ entityType: 'delivery', entityId: context.productId, label: 'Delivery' });
|
|
108
144
|
}
|
|
109
|
-
const sections = await Promise.all(layers.map(l => fetchLoopLayerContext(l.entityType, l.entityId, l.label)));
|
|
145
|
+
const sections = await Promise.all(layers.map(l => fetchLoopLayerContext(l.entityType, l.entityId, l.label, query)));
|
|
110
146
|
const nonEmpty = sections.filter(s => s.trim());
|
|
111
147
|
if (nonEmpty.length === 0)
|
|
112
148
|
return '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-context.js","sourceRoot":"","sources":["../../src/resolvers/loop-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAQ/C;;;GAGG;AACH,KAAK,UAAU,qBAAqB,CAClC,UAAkB,EAClB,QAAgB,EAChB,UAAkB;
|
|
1
|
+
{"version":3,"file":"loop-context.js","sourceRoot":"","sources":["../../src/resolvers/loop-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-prompt-base.d.ts","sourceRoot":"","sources":["../src/team-prompt-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,YAAY,EACV,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAG1E,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAS5C,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,uCAAuC,CAAC;AAU/C,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,oCAAoC,EACpC,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;AAkBjD,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,0BAA0B,EAC1B,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAWhF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAgCR;AAMD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,sBAAsB,GAC9B,MAAM,
|
|
1
|
+
{"version":3,"file":"team-prompt-base.d.ts","sourceRoot":"","sources":["../src/team-prompt-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,YAAY,EACV,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAG1E,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAS5C,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,uCAAuC,CAAC;AAU/C,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,oCAAoC,EACpC,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,yCAAyC,CAAC;AAkBjD,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,0BAA0B,EAC1B,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAWhF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAgCR;AAMD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAsCR"}
|
package/dist/team-prompt-base.js
CHANGED
|
@@ -95,6 +95,7 @@ export function buildFocusTeamPrompt(role, context) {
|
|
|
95
95
|
buildDeliveryListingSection(context.deliveries, context.issues),
|
|
96
96
|
buildStatusUpdateRulesSection(),
|
|
97
97
|
buildExecutionInstructionsSection(context.productId),
|
|
98
|
+
buildSessionConstraintsSection(),
|
|
98
99
|
buildWorkerManagementSection(context.executionConfig.maxWorkers, context.engineId),
|
|
99
100
|
buildDeliveryStageProgressionSection(),
|
|
100
101
|
buildScopingMandateSection(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-prompt-base.js","sourceRoot":"","sources":["../src/team-prompt-base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"team-prompt-base.js","sourceRoot":"","sources":["../src/team-prompt-base.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telora/daemon",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.14",
|
|
4
4
|
"description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"clean": "rm -rf dist",
|
|
29
29
|
"start": "node dist/index.js",
|
|
30
30
|
"lint": "eslint .",
|
|
31
|
-
"test": "npx tsx --experimental-test-module-mocks --test --test-concurrency=1 src/__tests__/*.test.ts",
|
|
31
|
+
"test": "npx tsx --experimental-test-module-mocks --test --test-concurrency=1 src/__tests__/*.test.ts src/*.test.ts src/scanners/*.test.ts src/feeds/*.test.ts",
|
|
32
32
|
"typecheck": "tsc --noEmit",
|
|
33
33
|
"stamp-build-info": "node scripts/stamp-build-info.mjs",
|
|
34
34
|
"stamp-build-info:local": "node scripts/stamp-build-info.mjs --empty",
|