@jinion/core 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/agent.d.ts +3 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/claude/backend.d.ts +1 -1
- package/dist/agent/claude/backend.d.ts.map +1 -1
- package/dist/agent/claude/backend.js +2 -1
- package/dist/agent/claude/backend.js.map +1 -1
- package/dist/agent/claude/jinion-tools.d.ts +3 -1
- package/dist/agent/claude/jinion-tools.d.ts.map +1 -1
- package/dist/agent/claude/jinion-tools.js +10 -1
- package/dist/agent/claude/jinion-tools.js.map +1 -1
- package/dist/agent/claude/options.d.ts +4 -1
- package/dist/agent/claude/options.d.ts.map +1 -1
- package/dist/agent/claude/options.js +4 -4
- package/dist/agent/claude/options.js.map +1 -1
- package/dist/agent/claude/prompt.d.ts +2 -1
- package/dist/agent/claude/prompt.d.ts.map +1 -1
- package/dist/agent/claude/prompt.js +3 -1
- package/dist/agent/claude/prompt.js.map +1 -1
- package/dist/agent/claude/session.d.ts +9 -1
- package/dist/agent/claude/session.d.ts.map +1 -1
- package/dist/agent/claude/session.js +13 -3
- package/dist/agent/claude/session.js.map +1 -1
- package/dist/agent/claude/tool-calls.d.ts.map +1 -1
- package/dist/agent/claude/tool-calls.js +11 -2
- package/dist/agent/claude/tool-calls.js.map +1 -1
- package/dist/agent/codex/backend.d.ts +1 -1
- package/dist/agent/codex/backend.d.ts.map +1 -1
- package/dist/agent/codex/backend.js +2 -1
- package/dist/agent/codex/backend.js.map +1 -1
- package/dist/agent/codex/events.d.ts.map +1 -1
- package/dist/agent/codex/events.js +7 -4
- package/dist/agent/codex/events.js.map +1 -1
- package/dist/agent/codex/jinion-tools.d.ts +27 -4
- package/dist/agent/codex/jinion-tools.d.ts.map +1 -1
- package/dist/agent/codex/jinion-tools.js +18 -4
- package/dist/agent/codex/jinion-tools.js.map +1 -1
- package/dist/agent/codex/session.d.ts +3 -0
- package/dist/agent/codex/session.d.ts.map +1 -1
- package/dist/agent/codex/session.js +5 -2
- package/dist/agent/codex/session.js.map +1 -1
- package/dist/agent/demo/scenarios/pricing-card.d.ts +3 -0
- package/dist/agent/demo/scenarios/pricing-card.d.ts.map +1 -0
- package/dist/agent/demo/scenarios/pricing-card.js +43 -0
- package/dist/agent/demo/scenarios/pricing-card.js.map +1 -0
- package/dist/agent/demo/sessions.d.ts.map +1 -1
- package/dist/agent/demo/sessions.js +26 -1
- package/dist/agent/demo/sessions.js.map +1 -1
- package/dist/agent/review.d.ts +8 -2
- package/dist/agent/review.d.ts.map +1 -1
- package/dist/agent/review.js +27 -7
- package/dist/agent/review.js.map +1 -1
- package/dist/api/client.d.ts +212 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/connection.d.ts +52 -0
- package/dist/api/connection.d.ts.map +1 -1
- package/dist/api/connection.js +2 -0
- package/dist/api/connection.js.map +1 -1
- package/dist/api/fields.d.ts +229 -1
- package/dist/api/fields.d.ts.map +1 -1
- package/dist/api/fields.js +3 -1
- package/dist/api/fields.js.map +1 -1
- package/dist/api/json-schema.d.ts +819 -181
- package/dist/api/json-schema.d.ts.map +1 -1
- package/dist/api/methods/git.js +1 -1
- package/dist/api/methods/git.js.map +1 -1
- package/dist/api/methods/sessions.d.ts.map +1 -1
- package/dist/api/methods/sessions.js +3 -2
- package/dist/api/methods/sessions.js.map +1 -1
- package/dist/api/methods/team.d.ts +4 -0
- package/dist/api/methods/team.d.ts.map +1 -0
- package/dist/api/methods/team.js +30 -0
- package/dist/api/methods/team.js.map +1 -0
- package/dist/api/protocol.d.ts +779 -2
- package/dist/api/protocol.d.ts.map +1 -1
- package/dist/api/protocol.js +36 -5
- package/dist/api/protocol.js.map +1 -1
- package/dist/api/schemas.d.ts +496 -0
- package/dist/api/schemas.d.ts.map +1 -1
- package/dist/api/schemas.js +6 -0
- package/dist/api/schemas.js.map +1 -1
- package/dist/commands/builtin.d.ts.map +1 -1
- package/dist/commands/builtin.js +3 -0
- package/dist/commands/builtin.js.map +1 -1
- package/dist/commands/team.d.ts +4 -0
- package/dist/commands/team.d.ts.map +1 -0
- package/dist/commands/team.js +11 -0
- package/dist/commands/team.js.map +1 -0
- package/dist/controllers/context.d.ts +4 -0
- package/dist/controllers/context.d.ts.map +1 -1
- package/dist/controllers/context.js +4 -0
- package/dist/controllers/context.js.map +1 -1
- package/dist/controllers/conversation.d.ts +16 -0
- package/dist/controllers/conversation.d.ts.map +1 -1
- package/dist/controllers/decision-view.d.ts +20 -0
- package/dist/controllers/decision-view.d.ts.map +1 -0
- package/dist/controllers/decision-view.js +59 -0
- package/dist/controllers/decision-view.js.map +1 -0
- package/dist/controllers/decisions.d.ts +29 -0
- package/dist/controllers/decisions.d.ts.map +1 -0
- package/dist/controllers/decisions.js +199 -0
- package/dist/controllers/decisions.js.map +1 -0
- package/dist/controllers/jinion.d.ts +17 -1
- package/dist/controllers/jinion.d.ts.map +1 -1
- package/dist/controllers/jinion.js +89 -5
- package/dist/controllers/jinion.js.map +1 -1
- package/dist/controllers/session.d.ts +21 -1
- package/dist/controllers/session.d.ts.map +1 -1
- package/dist/controllers/session.js +63 -1
- package/dist/controllers/session.js.map +1 -1
- package/dist/controllers/team.d.ts +216 -0
- package/dist/controllers/team.d.ts.map +1 -0
- package/dist/controllers/team.js +208 -0
- package/dist/controllers/team.js.map +1 -0
- package/dist/controllers/turns.d.ts +6 -0
- package/dist/controllers/turns.d.ts.map +1 -1
- package/dist/controllers/turns.js +17 -7
- package/dist/controllers/turns.js.map +1 -1
- package/dist/conversation/entries.d.ts +36 -0
- package/dist/conversation/entries.d.ts.map +1 -1
- package/dist/conversation/entries.js +26 -0
- package/dist/conversation/entries.js.map +1 -1
- package/dist/conversation/reducer.d.ts +132 -0
- package/dist/conversation/reducer.d.ts.map +1 -1
- package/dist/conversation/reducer.js +30 -1
- package/dist/conversation/reducer.js.map +1 -1
- package/dist/conversation/session.d.ts +24 -0
- package/dist/conversation/session.d.ts.map +1 -1
- package/dist/conversation/store.d.ts +13 -0
- package/dist/conversation/store.d.ts.map +1 -1
- package/dist/conversation/store.js +31 -7
- package/dist/conversation/store.js.map +1 -1
- package/dist/feedback/shared.d.ts +16 -0
- package/dist/feedback/shared.d.ts.map +1 -1
- package/dist/git/repos.d.ts.map +1 -1
- package/dist/git/repos.js +3 -1
- package/dist/git/repos.js.map +1 -1
- package/dist/git/staging.d.ts +2 -2
- package/dist/git/staging.d.ts.map +1 -1
- package/dist/git/staging.js +3 -3
- package/dist/git/staging.js.map +1 -1
- package/dist/git/types.d.ts +2 -0
- package/dist/git/types.d.ts.map +1 -1
- package/dist/git/types.js +2 -0
- package/dist/git/types.js.map +1 -1
- package/dist/jinion-account/account.d.ts +178 -0
- package/dist/jinion-account/account.d.ts.map +1 -1
- package/dist/jinion-account/account.js +30 -0
- package/dist/jinion-account/account.js.map +1 -1
- package/dist/jinion-account/api.d.ts +169 -0
- package/dist/jinion-account/api.d.ts.map +1 -1
- package/dist/jinion-account/api.js +39 -1
- package/dist/jinion-account/api.js.map +1 -1
- package/dist/jinion-account/user.d.ts +22 -0
- package/dist/jinion-account/user.d.ts.map +1 -1
- package/dist/jinion-account/user.js +9 -0
- package/dist/jinion-account/user.js.map +1 -1
- package/dist/map/review.d.ts +6 -4
- package/dist/map/review.d.ts.map +1 -1
- package/dist/map/review.js +21 -7
- package/dist/map/review.js.map +1 -1
- package/dist/state/jinion-account.d.ts +6 -0
- package/dist/state/jinion-account.d.ts.map +1 -1
- package/dist/state/session.d.ts +150 -0
- package/dist/state/session.d.ts.map +1 -1
- package/dist/state/session.js +2 -0
- package/dist/state/session.js.map +1 -1
- package/dist/state/team.d.ts +151 -0
- package/dist/state/team.d.ts.map +1 -0
- package/dist/state/team.js +4 -0
- package/dist/state/team.js.map +1 -0
- package/dist/team/anchoring.d.ts +9 -0
- package/dist/team/anchoring.d.ts.map +1 -0
- package/dist/team/anchoring.js +26 -0
- package/dist/team/anchoring.js.map +1 -0
- package/dist/team/config.d.ts +16 -0
- package/dist/team/config.d.ts.map +1 -0
- package/dist/team/config.js +37 -0
- package/dist/team/config.js.map +1 -0
- package/dist/team/decision.d.ts +255 -0
- package/dist/team/decision.d.ts.map +1 -0
- package/dist/team/decision.js +82 -0
- package/dist/team/decision.js.map +1 -0
- package/dist/team/decisions.d.ts +98 -0
- package/dist/team/decisions.d.ts.map +1 -0
- package/dist/team/decisions.js +166 -0
- package/dist/team/decisions.js.map +1 -0
- package/dist/team/history.d.ts +27 -0
- package/dist/team/history.d.ts.map +1 -0
- package/dist/team/history.js +49 -0
- package/dist/team/history.js.map +1 -0
- package/dist/team/prompt.d.ts +20 -0
- package/dist/team/prompt.d.ts.map +1 -0
- package/dist/team/prompt.js +44 -0
- package/dist/team/prompt.js.map +1 -0
- package/dist/team/repository.d.ts +12 -0
- package/dist/team/repository.d.ts.map +1 -0
- package/dist/team/repository.js +32 -0
- package/dist/team/repository.js.map +1 -0
- package/dist/team/secrets.d.ts +3 -0
- package/dist/team/secrets.d.ts.map +1 -0
- package/dist/team/secrets.js +18 -0
- package/dist/team/secrets.js.map +1 -0
- package/dist/team/tools.d.ts +82 -0
- package/dist/team/tools.d.ts.map +1 -0
- package/dist/team/tools.js +46 -0
- package/dist/team/tools.js.map +1 -0
- package/dist/team/types.d.ts +178 -0
- package/dist/team/types.d.ts.map +1 -0
- package/dist/team/types.js +60 -0
- package/dist/team/types.js.map +1 -0
- package/dist/team/visibility.d.ts +9 -0
- package/dist/team/visibility.d.ts.map +1 -0
- package/dist/team/visibility.js +36 -0
- package/dist/team/visibility.js.map +1 -0
- package/package.json +1 -1
- package/schema/api.json +3371 -503
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const decisions = {
|
|
2
|
+
name: 'decisions',
|
|
3
|
+
description: 'Your team’s decisions, as your branch sees them: in your code, not pulled yet, on other branches',
|
|
4
|
+
run: (jinion) => jinion.screen.openView({ id: 'decisions' }),
|
|
5
|
+
};
|
|
6
|
+
export const link = {
|
|
7
|
+
name: 'link',
|
|
8
|
+
description: 'Share this repository’s decisions with a team on cloud.jinion.co, or ask to join the one it belongs to',
|
|
9
|
+
run: (jinion) => jinion.screen.openView({ id: 'link' }),
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=team.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/commands/team.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAY;IAChC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,kGAAkG;IAC/G,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAY;IAC3B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,wGAAwG;IACrH,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;CACxD,CAAC"}
|
|
@@ -89,6 +89,10 @@ export declare const View: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
89
89
|
id: z.ZodLiteral<"map">;
|
|
90
90
|
}, z.core.$strip>, z.ZodObject<{
|
|
91
91
|
id: z.ZodLiteral<"release-notes">;
|
|
92
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
93
|
+
id: z.ZodLiteral<"decisions">;
|
|
94
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
95
|
+
id: z.ZodLiteral<"link">;
|
|
92
96
|
}, z.core.$strip>], "id">;
|
|
93
97
|
export type View = z.infer<typeof View>;
|
|
94
98
|
/** What the app's controllers work with. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/controllers/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,OAAO;;;;iBAA+F,CAAC;AAEpH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,iHAAiH;AACjH,eAAO,MAAM,UAAU;;;EAAiC,CAAC;AAEzD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,0EAA0E;AAC1E,eAAO,MAAM,WAAW;;;;iBAA0E,CAAC;AAEnG,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,+DAA+D;AAC/D,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,wGAAwG;IACxG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAClE,OAAO,IAAI,OAAO,CAAC;IACnB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3C,2GAA2G;IAC3G,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,cAAc,IAAI,IAAI,CAAC;IACvB,IAAI,IAAI,IAAI,CAAC;CACd;AAED,oEAAoE;AACpE,eAAO,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/controllers/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,OAAO;;;;iBAA+F,CAAC;AAEpH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,iHAAiH;AACjH,eAAO,MAAM,UAAU;;;EAAiC,CAAC;AAEzD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,0EAA0E;AAC1E,eAAO,MAAM,WAAW;;;;iBAA0E,CAAC;AAEnG,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,+DAA+D;AAC/D,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,wGAAwG;IACxG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAClE,OAAO,IAAI,OAAO,CAAC;IACnB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3C,2GAA2G;IAC3G,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,cAAc,IAAI,IAAI,CAAC;IACvB,IAAI,IAAI,IAAI,CAAC;CACd;AAED,oEAAoE;AACpE,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAyBf,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,sFAAsF;IACtF,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,qGAAqG;IACrG,aAAa,IAAI,YAAY,CAAC;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9C,wDAAwD;IACxD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,yGAAyG;AACzG,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,wGAAwG;IACxG,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mEAAmE;IACnE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9C,gCAAgC;IAChC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CAClD;AAED,eAAO,MAAM,IAAI,sDAAsD,CAAC"}
|
|
@@ -26,6 +26,10 @@ export const View = z.discriminatedUnion('id', [
|
|
|
26
26
|
z.object({ id: z.literal('map') }),
|
|
27
27
|
/** What each version of the app brought; every client keeps the notes of its own product. */
|
|
28
28
|
z.object({ id: z.literal('release-notes') }),
|
|
29
|
+
/** The project's team decisions as this session's branch sees them. */
|
|
30
|
+
z.object({ id: z.literal('decisions') }),
|
|
31
|
+
/** Linking the repository to a team's project, or asking for access to the one it is linked to. */
|
|
32
|
+
z.object({ id: z.literal('link') }),
|
|
29
33
|
]);
|
|
30
34
|
export const BUSY = 'Finish or interrupt the current turn first (esc).';
|
|
31
35
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/controllers/context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/controllers/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,22 @@ export declare class ConversationController {
|
|
|
69
69
|
added: number;
|
|
70
70
|
removed: number;
|
|
71
71
|
}[];
|
|
72
|
+
} | {
|
|
73
|
+
id: string;
|
|
74
|
+
kind: "decision";
|
|
75
|
+
decision: string;
|
|
76
|
+
title: string;
|
|
77
|
+
origin: "agent" | "asked" | "requested";
|
|
78
|
+
deleted?: boolean | undefined;
|
|
79
|
+
kept?: boolean | undefined;
|
|
80
|
+
by?: string | undefined;
|
|
81
|
+
madeAt?: string | undefined;
|
|
82
|
+
elsewhere?: {
|
|
83
|
+
branch: string | null;
|
|
84
|
+
pullRequest: number | null;
|
|
85
|
+
pullRequestState: "closed" | "merged" | "open" | null;
|
|
86
|
+
paths: string[];
|
|
87
|
+
} | undefined;
|
|
72
88
|
} | {
|
|
73
89
|
id: string;
|
|
74
90
|
kind: "tool";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/controllers/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI7D,OAAO,EAAQ,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3E,qBAAa,sBAAsB;IAK/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IALxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAE7B,YACmB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,YAAY,EAClC;IAEJ,IAAI,OAAO
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/controllers/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI7D,OAAO,EAAQ,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3E,qBAAa,sBAAsB;IAK/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IALxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAE7B,YACmB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,YAAY,EAClC;IAEJ,IAAI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEV;IAED,QAAQ,CAAC,MAAM,EAAE,MAAM,QAEtB;IAED,IAAI,SAIH;IAED,gBAAgB,SAEf;IAED,wIAAwI;IACxI,SAAS,SASR;IAED,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,QAmBnB;IAED,UAAU,SAST;IAED,yFAAyF;IACzF,YAAY,IAAI,WAAW,EAAE,CAM5B;IAEK,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,iBAuBpD;YAEa,IAAI;IAmBlB,OAAO,CAAC,OAAO;CAMhB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Jinion } from './jinion.js';
|
|
2
|
+
import type { Session } from './session.js';
|
|
3
|
+
/**
|
|
4
|
+
* A session's view of the project's decisions, sorted by what the HEAD of the folder it works in has, which a
|
|
5
|
+
* conversation's worktree has of its own. On the way, the user's drafts that a commit on the branch now carries are
|
|
6
|
+
* anchored to it, whether Jinion or the user's own terminal made the commit.
|
|
7
|
+
*/
|
|
8
|
+
export declare class DecisionView {
|
|
9
|
+
private readonly app;
|
|
10
|
+
private readonly session;
|
|
11
|
+
/** The HEAD each draft was last looked for at, so one that didn't move costs no git. */
|
|
12
|
+
private readonly looked;
|
|
13
|
+
private sorting;
|
|
14
|
+
constructor(app: Jinion, session: Session);
|
|
15
|
+
/** One at a time, each after the one before, so an older sort never lands after a newer one. */
|
|
16
|
+
refresh(): Promise<void>;
|
|
17
|
+
private sort;
|
|
18
|
+
private anchorDrafts;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=decision-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-view.d.ts","sourceRoot":"","sources":["../../src/controllers/decision-view.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,YAAY;IAMrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,OAAO,CAAqB;IAEpC,YACmB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAC/B;IAEJ,gGAAgG;IAChG,OAAO,kBAIN;YAEa,IAAI;YAYJ,YAAY;CAyB3B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { teamAtom } from '../state/team.js';
|
|
2
|
+
import { anchorOf } from '../team/anchoring.js';
|
|
3
|
+
import { repositoryRoot } from '../team/config.js';
|
|
4
|
+
import { runGit } from '../team/history.js';
|
|
5
|
+
import { repositoryIdentity } from '../team/repository.js';
|
|
6
|
+
import { sortDecisions } from '../team/visibility.js';
|
|
7
|
+
/**
|
|
8
|
+
* A session's view of the project's decisions, sorted by what the HEAD of the folder it works in has, which a
|
|
9
|
+
* conversation's worktree has of its own. On the way, the user's drafts that a commit on the branch now carries are
|
|
10
|
+
* anchored to it, whether Jinion or the user's own terminal made the commit.
|
|
11
|
+
*/
|
|
12
|
+
export class DecisionView {
|
|
13
|
+
app;
|
|
14
|
+
session;
|
|
15
|
+
/** The HEAD each draft was last looked for at, so one that didn't move costs no git. */
|
|
16
|
+
looked = new Map();
|
|
17
|
+
sorting = Promise.resolve();
|
|
18
|
+
constructor(app, session) {
|
|
19
|
+
this.app = app;
|
|
20
|
+
this.session = session;
|
|
21
|
+
}
|
|
22
|
+
/** One at a time, each after the one before, so an older sort never lands after a newer one. */
|
|
23
|
+
refresh() {
|
|
24
|
+
this.sorting = this.sorting.then(() => this.sort()).catch(() => { });
|
|
25
|
+
return this.sorting;
|
|
26
|
+
}
|
|
27
|
+
async sort() {
|
|
28
|
+
const { store, team } = this.app;
|
|
29
|
+
const decisions = team.decisions;
|
|
30
|
+
if (!decisions || store.get(teamAtom)?.state !== 'member')
|
|
31
|
+
return store.set(this.session.atoms.decisions, undefined);
|
|
32
|
+
const { folder } = this.session;
|
|
33
|
+
const ancestry = await team.history.of(folder);
|
|
34
|
+
if (ancestry)
|
|
35
|
+
await this.anchorDrafts(folder, ancestry, decisions);
|
|
36
|
+
store.set(this.session.atoms.decisions, sortDecisions(decisions.all(), ancestry));
|
|
37
|
+
}
|
|
38
|
+
async anchorDrafts(folder, ancestry, decisions) {
|
|
39
|
+
const drafts = decisions
|
|
40
|
+
.all()
|
|
41
|
+
.filter((decision) => decision.status === 'draft' &&
|
|
42
|
+
// Recorded offline: the API gives it an id before it can be anchored.
|
|
43
|
+
!decision.id.startsWith('local_') &&
|
|
44
|
+
(decision.branch === null || decision.branch === ancestry.branch) &&
|
|
45
|
+
this.looked.get(decision.id) !== ancestry.head);
|
|
46
|
+
if (drafts.length === 0)
|
|
47
|
+
return;
|
|
48
|
+
const repository = await repositoryIdentity(repositoryRoot(folder));
|
|
49
|
+
if (!repository)
|
|
50
|
+
return;
|
|
51
|
+
for (const draft of drafts) {
|
|
52
|
+
this.looked.set(draft.id, ancestry.head);
|
|
53
|
+
const sha = await anchorOf(folder, draft, runGit);
|
|
54
|
+
if (sha)
|
|
55
|
+
await decisions.anchor(draft.id, [sha], repository).catch(() => { });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=decision-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-view.js","sourceRoot":"","sources":["../../src/controllers/decision-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { DecisionQuery, DecisionRecorder, DecisionReview, RecordedDecision } from '../team/tools.js';
|
|
2
|
+
import type { Jinion } from './jinion.js';
|
|
3
|
+
import type { Session } from './session.js';
|
|
4
|
+
/**
|
|
5
|
+
* One conversation's part in its project's team decisions, as its session knows it: its backend and model, its
|
|
6
|
+
* folder's branch and HEAD, the files its turns changed, and the decisions that HEAD has.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SessionDecisions implements DecisionRecorder {
|
|
9
|
+
private readonly app;
|
|
10
|
+
private readonly session;
|
|
11
|
+
/** The index as the agent was last told it. */
|
|
12
|
+
private told?;
|
|
13
|
+
/** Teammates' decisions on other branches the agent was told of, each once a session. */
|
|
14
|
+
private readonly warned;
|
|
15
|
+
constructor(app: Jinion, session: () => Session);
|
|
16
|
+
ready(): boolean;
|
|
17
|
+
index(): string;
|
|
18
|
+
indexChange(): string | undefined;
|
|
19
|
+
record({ title, decision, reason, turnedDown, origin, paths, supersedes }: RecordedDecision): Promise<string>;
|
|
20
|
+
find({ path, symbol, words }: DecisionQuery): string;
|
|
21
|
+
kept(id: string): string;
|
|
22
|
+
review(paths: string[]): Promise<DecisionReview>;
|
|
23
|
+
private shown;
|
|
24
|
+
/** Those that bind and the user's own drafts, the ones on files this conversation changed first, then the newest. */
|
|
25
|
+
private nearest;
|
|
26
|
+
/** Paths as an edit or the map names them, from the repository's root, as decisions keep them. */
|
|
27
|
+
private fromRoot;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=decisions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../src/controllers/decisions.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC1G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAY5C;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,gBAAgB;IAOrD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,+CAA+C;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YACmB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,OAAO,EACrC;IAEJ,KAAK,YAEJ;IAED,KAAK,WAIJ;IAED,WAAW,uBASV;IAEK,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,gBAAgB,mBA2ChG;IAED,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,aAAa,UAqB1C;IAED,IAAI,CAAC,EAAE,EAAE,MAAM,UAOd;IAEK,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAsCrD;IAED,OAAO,CAAC,KAAK;IAIb,qHAAqH;IACrH,OAAO,CAAC,OAAO;IASf,kGAAkG;IAClG,OAAO,CAAC,QAAQ;CAMjB"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { isAbsolute, join, relative } from 'node:path';
|
|
3
|
+
import { editTurns, turnEditPaths } from '../conversation/edits.js';
|
|
4
|
+
import { errorMessage } from '../lib/errors.js';
|
|
5
|
+
import { teamAtom } from '../state/team.js';
|
|
6
|
+
import { repositoryRoot } from '../team/config.js';
|
|
7
|
+
import { runGit } from '../team/history.js';
|
|
8
|
+
import { authorOf, indexChanged, indexOf } from '../team/prompt.js';
|
|
9
|
+
import { headOf, repositoryIdentity } from '../team/repository.js';
|
|
10
|
+
import { secretIn } from '../team/secrets.js';
|
|
11
|
+
/** How many decisions a turn is held against with the small model, each a request of its own. */
|
|
12
|
+
const JUDGED = 3;
|
|
13
|
+
/** Of a file's change, so a large one doesn't crowd the small model's prompt. */
|
|
14
|
+
const DIFF_CHARS = 8000;
|
|
15
|
+
const AGAINST = `You check whether a change to code goes against a decision its team recorded.
|
|
16
|
+
|
|
17
|
+
You get the decision, with why it was made, and the change as a diff. Reply NO when the change keeps to the decision or has nothing to do with it. When it goes against it, reply YES: and one sentence on what in the change does.`;
|
|
18
|
+
/**
|
|
19
|
+
* One conversation's part in its project's team decisions, as its session knows it: its backend and model, its
|
|
20
|
+
* folder's branch and HEAD, the files its turns changed, and the decisions that HEAD has.
|
|
21
|
+
*/
|
|
22
|
+
export class SessionDecisions {
|
|
23
|
+
app;
|
|
24
|
+
session;
|
|
25
|
+
/** The index as the agent was last told it. */
|
|
26
|
+
told;
|
|
27
|
+
/** Teammates' decisions on other branches the agent was told of, each once a session. */
|
|
28
|
+
warned = new Set();
|
|
29
|
+
constructor(app, session) {
|
|
30
|
+
this.app = app;
|
|
31
|
+
this.session = session;
|
|
32
|
+
}
|
|
33
|
+
ready() {
|
|
34
|
+
return this.app.store.get(teamAtom)?.state === 'member' && this.app.team.decisions !== undefined;
|
|
35
|
+
}
|
|
36
|
+
index() {
|
|
37
|
+
this.told = indexOf(this.nearest());
|
|
38
|
+
return this.told;
|
|
39
|
+
}
|
|
40
|
+
indexChange() {
|
|
41
|
+
if (this.told === undefined || !this.ready())
|
|
42
|
+
return undefined;
|
|
43
|
+
const now = indexOf(this.nearest());
|
|
44
|
+
if (now === this.told)
|
|
45
|
+
return undefined;
|
|
46
|
+
this.told = now;
|
|
47
|
+
return indexChanged(now);
|
|
48
|
+
}
|
|
49
|
+
async record({ title, decision, reason, turnedDown, origin, paths, supersedes }) {
|
|
50
|
+
const decisions = this.app.team.decisions;
|
|
51
|
+
if (!this.ready() || !decisions)
|
|
52
|
+
return 'Nothing was recorded: this project doesn’t belong to a team the user is in.';
|
|
53
|
+
const secret = secretIn([title, decision, reason, turnedDown ?? ''].join('\n'));
|
|
54
|
+
if (secret)
|
|
55
|
+
return `Nothing was recorded: it looks like it holds ${secret}. Record the decision without it.`;
|
|
56
|
+
const session = this.session();
|
|
57
|
+
const { folder } = session;
|
|
58
|
+
const root = repositoryRoot(folder);
|
|
59
|
+
const [repository, head] = await Promise.all([repositoryIdentity(root), headOf(root)]);
|
|
60
|
+
if (!repository)
|
|
61
|
+
return 'Nothing was recorded: the repository has no commit or no remote yet.';
|
|
62
|
+
const named = paths?.map((path) => (isAbsolute(path) ? relative(root, path) : path)) ?? this.fromRoot(turnEditPaths(this.app.store.get(session.atoms.entries)));
|
|
63
|
+
const files = [...new Set(named)].filter((path) => path !== '' && !path.startsWith('..'));
|
|
64
|
+
const map = this.app.map?.in(folder);
|
|
65
|
+
const symbols = map ? files.flatMap((path) => map.files[relative(folder, join(root, path))]?.offers.map((offer) => offer.name) ?? []) : [];
|
|
66
|
+
try {
|
|
67
|
+
const made = await decisions.record({
|
|
68
|
+
title,
|
|
69
|
+
decision,
|
|
70
|
+
reason,
|
|
71
|
+
turnedDown,
|
|
72
|
+
origin,
|
|
73
|
+
backend: session.backend.name,
|
|
74
|
+
model: this.app.store.get(session.atoms.selection).model,
|
|
75
|
+
branch: head?.branch,
|
|
76
|
+
baseCommit: head?.commit,
|
|
77
|
+
paths: files,
|
|
78
|
+
symbols: [...new Set(symbols)].slice(0, 200),
|
|
79
|
+
supersedes,
|
|
80
|
+
repository,
|
|
81
|
+
});
|
|
82
|
+
session.decisionRecorded(made);
|
|
83
|
+
return made.id.startsWith('local_')
|
|
84
|
+
? `Recorded “${made.title}” on this machine; it reaches the team once Jinion can reach api.jinion.co again.`
|
|
85
|
+
: `Recorded ${made.id}: “${made.title}”. It reaches teammates once a commit carries it.`;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
return `Nothing was recorded: ${errorMessage(error)}`;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
find({ path, symbol, words }) {
|
|
92
|
+
if (!path && !symbol && !words)
|
|
93
|
+
return 'Say what to look for: a path, a symbol or a few words.';
|
|
94
|
+
const folderOf = path?.replace(/\/+$/, '');
|
|
95
|
+
const wanted = words?.toLowerCase().split(/\W+/).filter((word) => word.length > 2) ?? [];
|
|
96
|
+
const matches = (decision) => (!folderOf || decision.paths.some((each) => each === folderOf || each.startsWith(`${folderOf}/`))) &&
|
|
97
|
+
(!symbol || decision.symbols.includes(symbol)) &&
|
|
98
|
+
wanted.every((word) => [decision.title, decision.decision, decision.reason, decision.turnedDown ?? ''].join(' ').toLowerCase().includes(word));
|
|
99
|
+
const shown = this.shown();
|
|
100
|
+
const binding = shown.filter((decision) => (decision.state === 'binding' || decision.state === 'draft') && matches(decision));
|
|
101
|
+
const elsewhere = shown.filter((decision) => decision.state === 'other-branch' && matches(decision));
|
|
102
|
+
const parts = binding.length > 0 ? binding.map(full) : ['No decision binds this.'];
|
|
103
|
+
if (elsewhere.length > 0) {
|
|
104
|
+
parts.push(`Not in the user's code yet, so don't follow them: they are teammates' decisions on other branches.\n${elsewhere.map((decision) => `- ${decision.id}: ${decision.title} (${pending(decision)})`).join('\n')}`);
|
|
105
|
+
}
|
|
106
|
+
return parts.join('\n\n');
|
|
107
|
+
}
|
|
108
|
+
kept(id) {
|
|
109
|
+
const decision = this.shown().find((each) => each.id === id && (each.state === 'binding' || each.state === 'draft'));
|
|
110
|
+
if (!decision)
|
|
111
|
+
return `There is no decision ${id} that binds this work.`;
|
|
112
|
+
this.session().decisionKept(decision);
|
|
113
|
+
return `The user sees that you kept to ${id}.`;
|
|
114
|
+
}
|
|
115
|
+
async review(paths) {
|
|
116
|
+
if (!this.ready())
|
|
117
|
+
return { points: [], warnings: [] };
|
|
118
|
+
const session = this.session();
|
|
119
|
+
const root = repositoryRoot(session.folder);
|
|
120
|
+
const changed = new Set(this.fromRoot(paths));
|
|
121
|
+
const shown = this.shown();
|
|
122
|
+
const touched = (decision) => decision.paths.filter((path) => changed.has(path));
|
|
123
|
+
const brief = session.backend.brief?.bind(session.backend);
|
|
124
|
+
const points = [];
|
|
125
|
+
for (const decision of shown.filter((each) => each.state === 'binding' && touched(each).length > 0).slice(0, brief ? JUDGED : 0)) {
|
|
126
|
+
const files = touched(decision);
|
|
127
|
+
const diff = await changeOf(root, files);
|
|
128
|
+
const prompt = `The decision, “${decision.title}”:\n${decision.decision}\nWhy: ${decision.reason}\n\nThe change:\n${diff}`;
|
|
129
|
+
const answer = await brief(AGAINST, prompt).catch(() => undefined);
|
|
130
|
+
const why = /^yes\b[\s:.-]*(.*)$/is.exec(answer?.trim() ?? '')?.[1]?.trim();
|
|
131
|
+
if (why === undefined)
|
|
132
|
+
continue;
|
|
133
|
+
points.push({
|
|
134
|
+
kind: 'decision',
|
|
135
|
+
key: `decision:${decision.id}`,
|
|
136
|
+
path: files[0],
|
|
137
|
+
text: `This turn's change to ${files.join(', ')} seems to go against ${authorOf(decision)}'s decision ${decision.id}, “${decision.title}”: ${why} Keep to it; if the user wants it otherwise, ask them, then record a decision that supersedes it.`,
|
|
138
|
+
plain: `Goes against ${authorOf(decision)}'s decision “${decision.title}”`,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
const warnings = shown
|
|
142
|
+
.filter((decision) => decision.state === 'other-branch' && touched(decision).length > 0 && !this.warned.has(decision.id))
|
|
143
|
+
.map((decision) => {
|
|
144
|
+
this.warned.add(decision.id);
|
|
145
|
+
session.decisionElsewhere(decision, touched(decision));
|
|
146
|
+
return `${authorOf(decision)}'s decision ${pending(decision)}, “${decision.title}” (${decision.id}), concerns ${touched(decision).join(', ')}, which this turn changes, so the two may clash when it merges.`;
|
|
147
|
+
});
|
|
148
|
+
return { points, warnings };
|
|
149
|
+
}
|
|
150
|
+
shown() {
|
|
151
|
+
return this.app.store.get(this.session().atoms.decisions)?.decisions ?? [];
|
|
152
|
+
}
|
|
153
|
+
/** Those that bind and the user's own drafts, the ones on files this conversation changed first, then the newest. */
|
|
154
|
+
nearest() {
|
|
155
|
+
const session = this.session();
|
|
156
|
+
const touched = new Set(this.fromRoot(editTurns(this.app.store.get(session.atoms.entries)).flatMap((turn) => turn.edits.map((edit) => edit.path))));
|
|
157
|
+
const binding = this.shown().filter((decision) => decision.state === 'binding' || decision.state === 'draft');
|
|
158
|
+
const near = (decision) => decision.paths.some((path) => touched.has(path));
|
|
159
|
+
return [...binding.filter(near), ...binding.filter((decision) => !near(decision)).sort((a, b) => b.createdAt.localeCompare(a.createdAt))];
|
|
160
|
+
}
|
|
161
|
+
/** Paths as an edit or the map names them, from the repository's root, as decisions keep them. */
|
|
162
|
+
fromRoot(paths) {
|
|
163
|
+
const { folder } = this.session();
|
|
164
|
+
const root = repositoryRoot(folder);
|
|
165
|
+
return paths.map((path) => relative(root, isAbsolute(path) ? path : join(folder, path))).filter((path) => path !== '' && !path.startsWith('..'));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/** A decision in full, as `find_decisions` answers with it. */
|
|
169
|
+
function full(decision) {
|
|
170
|
+
const by = decision.state === 'draft' ? 'Yours, not in a commit yet' : `${authorOf(decision)}, ${decision.createdAt.slice(0, 10)}`;
|
|
171
|
+
return [
|
|
172
|
+
`# ${decision.id}: ${decision.title}`,
|
|
173
|
+
`${by}${decision.branch ? `, on ${decision.branch}` : ''}`,
|
|
174
|
+
'',
|
|
175
|
+
decision.decision,
|
|
176
|
+
'',
|
|
177
|
+
`Why: ${decision.reason}`,
|
|
178
|
+
...(decision.turnedDown ? ['', `Turned down: ${decision.turnedDown}`] : []),
|
|
179
|
+
...(decision.paths.length > 0 ? ['', `Paths: ${decision.paths.join(', ')}`] : []),
|
|
180
|
+
].join('\n');
|
|
181
|
+
}
|
|
182
|
+
/** Where a decision not in the user's code waits: its branch, and its pull request when the GitHub App knows it. */
|
|
183
|
+
function pending(decision) {
|
|
184
|
+
const request = decision.anchors.find((anchor) => anchor.pullRequest !== null);
|
|
185
|
+
const branch = decision.branch ? `on \`${decision.branch}\`` : 'on another branch';
|
|
186
|
+
return request ? `${branch} (pull request #${request.pullRequest}, ${request.pullRequestState ?? 'open'})` : branch;
|
|
187
|
+
}
|
|
188
|
+
/** What changed in `files` since the last commit, or the files as they are when the turn committed them. */
|
|
189
|
+
async function changeOf(root, files) {
|
|
190
|
+
const diff = await runGit(root, ['diff', 'HEAD', '--', ...files]).catch(() => '');
|
|
191
|
+
if (diff.trim())
|
|
192
|
+
return diff.slice(0, DIFF_CHARS);
|
|
193
|
+
return files
|
|
194
|
+
.filter((file) => existsSync(join(root, file)))
|
|
195
|
+
.map((file) => `${file}:\n${readFileSync(join(root, file), 'utf8')}`)
|
|
196
|
+
.join('\n\n')
|
|
197
|
+
.slice(0, DIFF_CHARS);
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=decisions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../src/controllers/decisions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAc,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,iGAAiG;AACjG,MAAM,MAAM,GAAG,CAAC,CAAC;AAEjB,iFAAiF;AACjF,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,MAAM,OAAO,GAAG;;oOAEoN,CAAC;AAErO;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAOR,GAAG;IACH,OAAO;IAP1B,+CAA+C;IACvC,IAAI,CAAU;IACtB,yFAAyF;IACxE,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAE5C,YACmB,GAAW,EACX,OAAsB;mBADtB,GAAG;uBACH,OAAO;IACvB,CAAC;IAEJ,KAAK;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;IACnG,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,SAAS,CAAC;QAE/D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACpC,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAExC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAEhB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAoB;QAC/F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS;YAAE,OAAO,6EAA6E,CAAC;QAEtH,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,IAAI,MAAM;YAAE,OAAO,gDAAgD,MAAM,mCAAmC,CAAC;QAE7G,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3B,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvF,IAAI,CAAC,UAAU;YAAE,OAAO,sEAAsE,CAAC;QAE/F,MAAM,KAAK,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChK,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3I,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;gBAClC,KAAK;gBACL,QAAQ;gBACR,MAAM;gBACN,UAAU;gBACV,MAAM;gBACN,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;gBAC7B,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK;gBACxD,MAAM,EAAE,IAAI,EAAE,MAAM;gBACpB,UAAU,EAAE,IAAI,EAAE,MAAM;gBACxB,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC5C,UAAU;gBACV,UAAU;aACX,CAAC,CAAC;YAEH,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAE/B,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBACjC,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,mFAAmF;gBAC5G,CAAC,CAAC,YAAY,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,KAAK,mDAAmD,CAAC;QAC7F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,yBAAyB,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAiB;QACzC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;YAAE,OAAO,wDAAwD,CAAC;QAEhG,MAAM,QAAQ,GAAG,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAEzF,MAAM,OAAO,GAAG,CAAC,QAAe,EAAE,EAAE,CAClC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;YAClG,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9H,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrG,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;QAEnF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,uGAAuG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5N,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,EAAU;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC;QACrH,IAAI,CAAC,QAAQ;YAAE,OAAO,wBAAwB,EAAE,wBAAwB,CAAC;QAEzE,IAAI,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAEtC,OAAO,kCAAkC,EAAE,GAAG,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAe;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAEvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,QAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjI,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,kBAAkB,QAAQ,CAAC,KAAK,OAAO,QAAQ,CAAC,QAAQ,UAAU,QAAQ,CAAC,MAAM,oBAAoB,IAAI,EAAE,CAAC;YAC3H,MAAM,MAAM,GAAG,MAAM,KAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACpE,MAAM,GAAG,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YAC5E,IAAI,GAAG,KAAK,SAAS;gBAAE,SAAS;YAEhC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,YAAY,QAAQ,CAAC,EAAE,EAAE;gBAC9B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE;gBACf,IAAI,EAAE,yBAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,QAAQ,CAAC,QAAQ,CAAC,eAAe,QAAQ,CAAC,EAAE,MAAM,QAAQ,CAAC,KAAK,MAAM,GAAG,mGAAmG;gBACnP,KAAK,EAAE,gBAAgB,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,QAAQ,CAAC,KAAK,GAAG;aAC3E,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK;aACnB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACxH,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7B,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEvD,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,eAAe,OAAO,CAAC,QAAQ,CAAC,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,EAAE,eAAe,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iEAAiE,CAAC;QAChN,CAAC,CAAC,CAAC;QAEL,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEO,KAAK;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IAC7E,CAAC;IAED,qHAAqH;IAC7G,OAAO;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpJ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;QAC9G,MAAM,IAAI,GAAG,CAAC,QAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnF,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5I,CAAC;IAED,kGAAkG;IAC1F,QAAQ,CAAC,KAAe;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAEpC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACnJ,CAAC;CACF;AAED,+DAA+D;AAC/D,SAAS,IAAI,CAAC,QAAe;IAC3B,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAEnI,OAAO;QACL,KAAK,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,EAAE;QACrC,GAAG,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1D,EAAE;QACF,QAAQ,CAAC,QAAQ;QACjB,EAAE;QACF,QAAQ,QAAQ,CAAC,MAAM,EAAE;QACzB,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,gBAAgB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,oHAAoH;AACpH,SAAS,OAAO,CAAC,QAAe;IAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAEnF,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,mBAAmB,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,gBAAgB,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AACtH,CAAC;AAED,4GAA4G;AAC5G,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,KAAe;IACnD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAClF,IAAI,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAElD,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;SAC9C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;SACpE,IAAI,CAAC,MAAM,CAAC;SACZ,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -15,6 +15,7 @@ import { AccountController } from './accounts.js';
|
|
|
15
15
|
import type { AppInfo, Screen } from './context.js';
|
|
16
16
|
import { McpController } from './mcp.js';
|
|
17
17
|
import { Session } from './session.js';
|
|
18
|
+
import { TeamController } from './team.js';
|
|
18
19
|
export interface JinionOptions {
|
|
19
20
|
/** In the order `/model` lists them; conversations saved before there were several ran on the first. */
|
|
20
21
|
backends: AgentBackend[];
|
|
@@ -64,6 +65,8 @@ export declare class Jinion {
|
|
|
64
65
|
readonly accounts: AccountController;
|
|
65
66
|
readonly mcp: McpController;
|
|
66
67
|
readonly jinionAccount: JinionAccount;
|
|
68
|
+
/** Whether the project belongs to a team, as its jinion.config.json says and api.jinion.co answers. */
|
|
69
|
+
readonly team: TeamController;
|
|
67
70
|
readonly signals?: Signals;
|
|
68
71
|
private readonly open;
|
|
69
72
|
private active?;
|
|
@@ -72,6 +75,8 @@ export declare class Jinion {
|
|
|
72
75
|
private started;
|
|
73
76
|
private readonly onExit?;
|
|
74
77
|
private readonly sessionListeners;
|
|
78
|
+
private handOvers?;
|
|
79
|
+
private readonly handingOver;
|
|
75
80
|
constructor(options: JinionOptions, screen: Screen);
|
|
76
81
|
/** The session the user looks at. */
|
|
77
82
|
get session(): Session;
|
|
@@ -101,6 +106,11 @@ export declare class Jinion {
|
|
|
101
106
|
* `OpenElsewhere`. New sessions start with the model and mode of the one the user looks at.
|
|
102
107
|
*/
|
|
103
108
|
openSession(saved?: SavedSession, { worktree }?: OpenOptions): Session;
|
|
109
|
+
/**
|
|
110
|
+
* The saved conversation `id`, also when another Jinion has it open: that one is asked to let go of it, stops its turn
|
|
111
|
+
* and closes it, and it opens here as it was left there.
|
|
112
|
+
*/
|
|
113
|
+
takeOver(id: string, options?: OpenOptions): Promise<Session>;
|
|
104
114
|
activate(session: Session): void;
|
|
105
115
|
/** Each time a session opens or closes, or another becomes the one the user looks at. */
|
|
106
116
|
onSessionsChange(listener: () => void): () => undefined;
|
|
@@ -125,6 +135,10 @@ export declare class Jinion {
|
|
|
125
135
|
private loadAnnouncements;
|
|
126
136
|
private openFirst;
|
|
127
137
|
private startingBackend;
|
|
138
|
+
private savedOne;
|
|
139
|
+
private answerHandOvers;
|
|
140
|
+
/** Lets another Jinion go on with `session`, and says so in the one shown. */
|
|
141
|
+
private handOver;
|
|
128
142
|
private claim;
|
|
129
143
|
private sessionsChanged;
|
|
130
144
|
private show;
|
|
@@ -137,6 +151,8 @@ export declare class Jinion {
|
|
|
137
151
|
/** Two processes writing one conversation would undo each other's turns. */
|
|
138
152
|
export declare class OpenElsewhere extends Error {
|
|
139
153
|
readonly pid: number;
|
|
140
|
-
constructor(pid: number, title?: string
|
|
154
|
+
constructor(pid: number, title?: string,
|
|
155
|
+
/** Asked to let go of it, the other didn't, as a Jinion from before taking over did. */
|
|
156
|
+
asked?: boolean);
|
|
141
157
|
}
|
|
142
158
|
//# sourceMappingURL=jinion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jinion.d.ts","sourceRoot":"","sources":["../../src/controllers/jinion.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAA8B,MAAM,mBAAmB,CAAC;AACrH,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAA2C,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACxG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAK/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"jinion.d.ts","sourceRoot":"","sources":["../../src/controllers/jinion.ts"],"names":[],"mappings":"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"}
|