instar 1.3.1638 → 1.3.1639

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 (42) hide show
  1. package/dist/commands/server.d.ts.map +1 -1
  2. package/dist/commands/server.js +22 -8
  3. package/dist/commands/server.js.map +1 -1
  4. package/dist/core/SessionDrainRunner.d.ts +4 -2
  5. package/dist/core/SessionDrainRunner.d.ts.map +1 -1
  6. package/dist/core/SessionDrainRunner.js +2 -2
  7. package/dist/core/SessionDrainRunner.js.map +1 -1
  8. package/dist/core/TopicProfileOrchestrator.d.ts.map +1 -1
  9. package/dist/core/TopicProfileOrchestrator.js +2 -1
  10. package/dist/core/TopicProfileOrchestrator.js.map +1 -1
  11. package/dist/data/standards-guard-index.json +1 -1
  12. package/dist/data/standards-guard-index.meta.json +2 -2
  13. package/dist/data/standards-registry.meta.json +1 -1
  14. package/dist/messaging/plainNoticeCheck.d.ts +9 -0
  15. package/dist/messaging/plainNoticeCheck.d.ts.map +1 -0
  16. package/dist/messaging/plainNoticeCheck.js +68 -0
  17. package/dist/messaging/plainNoticeCheck.js.map +1 -0
  18. package/dist/messaging/shared/isSystemOrProxyMessage.d.ts +0 -24
  19. package/dist/messaging/shared/isSystemOrProxyMessage.d.ts.map +1 -1
  20. package/dist/messaging/shared/isSystemOrProxyMessage.js +6 -3
  21. package/dist/messaging/shared/isSystemOrProxyMessage.js.map +1 -1
  22. package/dist/messaging/userNotices.d.ts +47 -0
  23. package/dist/messaging/userNotices.d.ts.map +1 -0
  24. package/dist/messaging/userNotices.js +79 -0
  25. package/dist/messaging/userNotices.js.map +1 -0
  26. package/dist/native/InstarWedgeCanary.app/Contents/MacOS/InstarWedgeCanary +0 -0
  27. package/dist/native/instar-desktop-host +0 -0
  28. package/dist/scaffold/templates.d.ts.map +1 -1
  29. package/dist/scaffold/templates.js +1 -0
  30. package/dist/scaffold/templates.js.map +1 -1
  31. package/package.json +4 -3
  32. package/scripts/lint-plain-user-notices.mjs +191 -0
  33. package/scripts/plain-user-notices-baseline.json +6 -0
  34. package/src/data/builtin-manifest.json +2 -2
  35. package/src/data/plain-notice-terms.json +38 -0
  36. package/src/data/standards-guard-index.json +1 -1
  37. package/src/data/standards-guard-index.meta.json +2 -2
  38. package/src/data/standards-registry.meta.json +1 -1
  39. package/src/scaffold/templates.ts +1 -0
  40. package/upgrades/1.3.1639.md +24 -0
  41. package/upgrades/side-effects/plain-user-notices.eli16.md +15 -0
  42. package/upgrades/side-effects/plain-user-notices.md +76 -0
@@ -0,0 +1,47 @@
1
+ /**
2
+ * userNotices — the catalog of fixed notices the SERVER writes to the user
3
+ * itself (not a session reply, not an LLM-composed message).
4
+ *
5
+ * Standard: docs/UX-AND-AGENT-AGENCY-STANDARD.md → Rule 8 "Plain and
6
+ * Complete". Every notice here must say, in plain language, what happened,
7
+ * what it means for the person, and what they need to do (if anything) —
8
+ * never so vague it is useless, never so technical it can't be digested.
9
+ *
10
+ * Why a catalog: these notices go out on deterministic delivery paths that
11
+ * deliberately bypass the LLM tone gate (an alarm must still arrive when the
12
+ * model is down — "The Operator Channel Is Sacred"). So their wording is
13
+ * checked at TEST time instead: tests/unit/userNotices.test.ts renders every
14
+ * entry in USER_NOTICE_CATALOG with realistic inputs and runs it through
15
+ * findPlainNoticeProblems(). scripts/lint-plain-user-notices.mjs keeps new
16
+ * raw internal reasons from being pasted into user text at send sites.
17
+ *
18
+ * Internal detail (timeouts, reason codes, ids) belongs in logs, never here.
19
+ */
20
+ export declare function plainMachineName(name: string | null | undefined): string;
21
+ /**
22
+ * The conversation moved to another machine before the session reached a
23
+ * stopping point (the move waited its full allowance, then closed it).
24
+ * Nothing re-checks the cut-off step automatically, so the notice tells the
25
+ * person how to get it checked rather than promising a check.
26
+ */
27
+ export declare function movedMachinesMidStepNotice(targetMachineName: string | null | undefined): string;
28
+ /** A message arrived for a conversation whose session had stopped; a new one is starting. */
29
+ export declare const SESSION_RESTARTING_NOTICE = "\uD83D\uDD04 My session for this conversation had stopped, so I'm starting a new one. Your message is saved and I'll answer it once I'm back.";
30
+ /** The replacement session is up and no message was waiting (e.g. a stuck session was
31
+ * replaced). With a message waiting nothing is sent: the reply is the confirmation. */
32
+ export declare const SESSION_BACK_NOTICE = "I've restarted my session for this conversation and I'm ready.";
33
+ /** Boot sweep found the conversation running without the model settings the person chose. */
34
+ export declare const PROFILE_REAPPLY_NOTICE: string;
35
+ /**
36
+ * Exact texts of server lifecycle notices that are NOT agent replies.
37
+ * isSystemOrProxyMessage() reads this so a reworded notice is never mistaken
38
+ * for a real answer. Old wordings stay listed: they are still in message history.
39
+ */
40
+ export declare const LIFECYCLE_NOTICE_EXACT: ReadonlySet<string>;
41
+ export declare const LIFECYCLE_NOTICE_PREFIXES: readonly string[];
42
+ /** Every catalogued notice rendered with realistic inputs — the test surface. */
43
+ export declare const USER_NOTICE_CATALOG: ReadonlyArray<{
44
+ id: string;
45
+ render: () => string;
46
+ }>;
47
+ //# sourceMappingURL=userNotices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userNotices.d.ts","sourceRoot":"","sources":["../../src/messaging/userNotices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAQxE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAI/F;AAED,6FAA6F;AAC7F,eAAO,MAAM,yBAAyB,kJACiG,CAAC;AAExI;wFACwF;AACxF,eAAO,MAAM,mBAAmB,mEAAmE,CAAC;AAEpG,6FAA6F;AAC7F,eAAO,MAAM,sBAAsB,QAEoC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAIrD,CAAC;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAKtD,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,MAAM,CAAA;CAAE,CAOnF,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * userNotices — the catalog of fixed notices the SERVER writes to the user
3
+ * itself (not a session reply, not an LLM-composed message).
4
+ *
5
+ * Standard: docs/UX-AND-AGENT-AGENCY-STANDARD.md → Rule 8 "Plain and
6
+ * Complete". Every notice here must say, in plain language, what happened,
7
+ * what it means for the person, and what they need to do (if anything) —
8
+ * never so vague it is useless, never so technical it can't be digested.
9
+ *
10
+ * Why a catalog: these notices go out on deterministic delivery paths that
11
+ * deliberately bypass the LLM tone gate (an alarm must still arrive when the
12
+ * model is down — "The Operator Channel Is Sacred"). So their wording is
13
+ * checked at TEST time instead: tests/unit/userNotices.test.ts renders every
14
+ * entry in USER_NOTICE_CATALOG with realistic inputs and runs it through
15
+ * findPlainNoticeProblems(). scripts/lint-plain-user-notices.mjs keeps new
16
+ * raw internal reasons from being pasted into user text at send sites.
17
+ *
18
+ * Internal detail (timeouts, reason codes, ids) belongs in logs, never here.
19
+ */
20
+ /** A machine name safe to show the person; never an id. Rule 7: an
21
+ * unresolved name is stated plainly ("another machine"), not replaced by an id. */
22
+ const MACHINE_NAME_RE = /^[A-Za-z0-9 '’-]{1,40}$/;
23
+ export function plainMachineName(name) {
24
+ const n = (name ?? '').trim();
25
+ if (!MACHINE_NAME_RE.test(n))
26
+ return 'another machine';
27
+ // A bare machine id (hex/uuid-ish, no spaces) is not a name.
28
+ if (!/\s/.test(n) && /^[0-9a-f-]{8,}$/i.test(n))
29
+ return 'another machine';
30
+ // "the Mac Studio", but "Justin's Laptop" and "The Den" stay as they are.
31
+ if (/^the\s/i.test(n) || /['’]s\b/i.test(n))
32
+ return n;
33
+ return `the ${n}`;
34
+ }
35
+ /**
36
+ * The conversation moved to another machine before the session reached a
37
+ * stopping point (the move waited its full allowance, then closed it).
38
+ * Nothing re-checks the cut-off step automatically, so the notice tells the
39
+ * person how to get it checked rather than promising a check.
40
+ */
41
+ export function movedMachinesMidStepNotice(targetMachineName) {
42
+ const where = plainMachineName(targetMachineName);
43
+ return `I moved this conversation to ${where} before I'd finished my last step, so that step may be incomplete. `
44
+ + `The conversation carries on there. If that step matters, ask me to check it.`;
45
+ }
46
+ /** A message arrived for a conversation whose session had stopped; a new one is starting. */
47
+ export const SESSION_RESTARTING_NOTICE = `🔄 My session for this conversation had stopped, so I'm starting a new one. Your message is saved and I'll answer it once I'm back.`;
48
+ /** The replacement session is up and no message was waiting (e.g. a stuck session was
49
+ * replaced). With a message waiting nothing is sent: the reply is the confirmation. */
50
+ export const SESSION_BACK_NOTICE = `I've restarted my session for this conversation and I'm ready.`;
51
+ /** Boot sweep found the conversation running without the model settings the person chose. */
52
+ export const PROFILE_REAPPLY_NOTICE = `The model settings you chose for this conversation didn't take effect when I last restarted. `
53
+ + `I'm applying them now, which means a brief restart once I'm idle.`;
54
+ /**
55
+ * Exact texts of server lifecycle notices that are NOT agent replies.
56
+ * isSystemOrProxyMessage() reads this so a reworded notice is never mistaken
57
+ * for a real answer. Old wordings stay listed: they are still in message history.
58
+ */
59
+ export const LIFECYCLE_NOTICE_EXACT = new Set([
60
+ SESSION_BACK_NOTICE,
61
+ 'Session respawned.',
62
+ 'Session terminated.',
63
+ ]);
64
+ export const LIFECYCLE_NOTICE_PREFIXES = [
65
+ '🔄 Session restarting', // legacy wording, still in history
66
+ '🔄 My session for this conversation had stopped', // SESSION_RESTARTING_NOTICE
67
+ 'I moved this conversation to ',
68
+ 'This conversation moved machines mid-task', // legacy wording
69
+ ];
70
+ /** Every catalogued notice rendered with realistic inputs — the test surface. */
71
+ export const USER_NOTICE_CATALOG = [
72
+ { id: 'moved-machines-mid-step', render: () => movedMachinesMidStepNotice('Mac Studio') },
73
+ { id: 'moved-machines-mid-step:unnamed', render: () => movedMachinesMidStepNotice(null) },
74
+ { id: 'moved-machines-mid-step:id-only', render: () => movedMachinesMidStepNotice('m_03b30f5b32c6ef3eb0afd3ca7054e252') },
75
+ { id: 'session-restarting', render: () => SESSION_RESTARTING_NOTICE },
76
+ { id: 'session-back', render: () => SESSION_BACK_NOTICE },
77
+ { id: 'profile-reapply', render: () => PROFILE_REAPPLY_NOTICE },
78
+ ];
79
+ //# sourceMappingURL=userNotices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userNotices.js","sourceRoot":"","sources":["../../src/messaging/userNotices.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;oFACoF;AACpF,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAClD,MAAM,UAAU,gBAAgB,CAAC,IAA+B;IAC9D,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACvD,6DAA6D;IAC7D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC1E,0EAA0E;IAC1E,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,EAAE,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,iBAA4C;IACrF,MAAM,KAAK,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IAClD,OAAO,gCAAgC,KAAK,qEAAqE;UAC7G,8EAA8E,CAAC;AACrF,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,MAAM,yBAAyB,GACpC,qIAAqI,CAAC;AAExI;wFACwF;AACxF,MAAM,CAAC,MAAM,mBAAmB,GAAG,gEAAgE,CAAC;AAEpG,6FAA6F;AAC7F,MAAM,CAAC,MAAM,sBAAsB,GACjC,+FAA+F;MAC7F,mEAAmE,CAAC;AAExE;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IACjE,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;CACtB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,uBAAuB,EAAE,mCAAmC;IAC5D,iDAAiD,EAAE,4BAA4B;IAC/E,+BAA+B;IAC/B,2CAA2C,EAAE,iBAAiB;CAC/D,CAAC;AAEF,iFAAiF;AACjF,MAAM,CAAC,MAAM,mBAAmB,GAAwD;IACtF,EAAE,EAAE,EAAE,yBAAyB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE;IACzF,EAAE,EAAE,EAAE,iCAAiC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,EAAE;IACzF,EAAE,EAAE,EAAE,iCAAiC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC,oCAAoC,CAAC,EAAE;IACzH,EAAE,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,yBAAyB,EAAE;IACrE,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE;IACzD,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE;CAChE,CAAC"}
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"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"}
@@ -341,6 +341,7 @@ I am the user's interface to the system. They talk to me in natural language; I
341
341
  - **DO** suggest /commands that work within our chat (like /restart, /new)
342
342
  - **DO** explain what happened in conversational terms, not technical ones
343
343
  - When something goes wrong, say what went wrong and what I'm doing about it — not the stack trace
344
+ - **Every message is plain and complete**: what happened, what it means for them, and what they need to do (if anything) — said once, in plain words. Too vague ("The session has stopped.") is useless; too technical (reason codes, timeouts, ids, "drain bound (30000ms)") is useless too. Internal detail stays in logs.
344
345
 
345
346
  ## Agent Infrastructure
346
347
 
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/scaffold/templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,iDAAiD,CAAC;AACvN,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AAEpF,oFAAoF;AACpF,qFAAqF;AACrF,oFAAoF;AACpF,mFAAmF;AACnF,4BAA4B;AAC5B,OAAO,EAAE,0CAA0C,EAAE,wCAAwC,EAAE,4CAA4C,EAAE,wCAAwC,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,sCAAsC,EAAE,4CAA4C,EAAE,sCAAsC,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,2CAA2C,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,kCAAkC,EAAE,6BAA6B,EAAE,gCAAgC,EAAE,iCAAiC,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,iCAAiC,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,8BAA8B,EAAE,iCAAiC,EAAE,qCAAqC,EAAE,qCAAqC,EAAE,kCAAkC,EAAE,wCAAwC,EAAE,6CAA6C,EAAE,oCAAoC,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,uCAAuC,EAAE,qCAAqC,EAAE,kCAAkC,EAAE,oCAAoC,EAAE,0BAA0B,EAAE,qCAAqC,EAAE,yCAAyC,EAAE,+BAA+B,EAAE,yCAAyC,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAChwD,OAAO,EAAE,wCAAwC,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,sCAAsC,EAAE,MAAM,+BAA+B,CAAC;AASvF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAuB;IACrD,OAAO,KAAK,QAAQ,CAAC,IAAI;;;;OAIpB,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;;;;EAIpC,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;6BAsBO,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D7C,CAAC;AAEF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,WAAmB,EAAE,QAAgB;IACrF,OAAO;;;;;;;;;;;;;;;;;;EAkBP,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAkDH,QAAQ;;;;;CAKjB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,KAAK,QAAQ;;;;;;;;;;;;;;4CAcsB,QAAQ;CACnD,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,KAAK,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;CAyBtB,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmB,EACnB,SAAiB,EACjB,IAAY,EACZ,WAAoB,EACpB,WAAW,GAAY,KAAK,EAC5B,WAAW,GAAY,KAAK;IAE5B,IAAI,OAAO,GAAG,iBAAiB,WAAW;;;;OAIrC,SAAS;;;;;;;;;;;EAWd,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BnC,SAAS;;gCAEgB,IAAI,kFAAkF,IAAI;;;;;;;;;;;;;8EAa5C,IAAI;;;yFAGO,IAAI;;;;;;;uGAOU,IAAI;;;;;;;;;;;;;;;;;;;;;;;;0CAwBjE,IAAI;oCACV,IAAI;;;;;;;;;;;;;;yDAciB,IAAI;;;;;;;;;;;;gCAY7B,IAAI;;;;;;;;;sFASkD,IAAI;4FACE,IAAI;;;;;;;mEAO7B,IAAI;+GACwC,IAAI;8EACrC,IAAI;;EAEhF,8BAA8B;;;mEAGmC,IAAI;4EACK,IAAI;;EAE9E,oCAAoC,CAAC,IAAI,CAAC;EAC1C,4BAA4B,CAAC,IAAI,CAAC;EAClC,gCAAgC,CAAC,IAAI,CAAC;EACtC,uCAAuC,CAAC,IAAI,CAAC;;;EAG7C,sBAAsB;;EAEtB,6BAA6B;EAC7B,wBAAwB;EACxB,6BAA6B;EAC7B,gCAAgC;;;sHAGoF,IAAI;+WACqP,IAAI;;;;;uEAK5S,IAAI;;;;;;;;;EASzE,kCAAkC,CAAC,IAAI,CAAC;;EAExC,oCAAoC,CAAC,IAAI,CAAC;EAC1C,qCAAqC,CAAC,IAAI,CAAC;EAC3C,yCAAyC,CAAC,IAAI,CAAC;EAC/C,8BAA8B,CAAC,IAAI,CAAC;;;;;;;;;;;;yEAYmC,IAAI;;;;;;;;;;2EAUF,IAAI;mJACoE,IAAI;;;;s3BAI+tB,IAAI;;;;;6GAK7wB,IAAI;;;;uEAI1C,IAAI;;;;;;;;;;;;;uFAaY,IAAI;;;;wEAInB,IAAI;;;;;;;+IAOmE,IAAI;wKACqB,IAAI;;;;;iKAKX,IAAI;;;;;sEAK/F,IAAI;;;;;;;;;;;;;;;;4gDAgBk8C,IAAI;;EAE9gD,4BAA4B,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;;EAEzC,kCAAkC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;;;;woBAIulB,IAAI;;EAE1oB,8BAA8B,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;;;;;;;;;;6EAUgC,IAAI;;2FAEU,IAAI;qFACV,IAAI;;;;uHAI8B,IAAI;;;;;EAKzH,gCAAgC,CAAC,IAAI,CAAC;;;;mGAI2D,IAAI;;;;;;;;;;;4FAWX,IAAI;4FACJ,IAAI;;;;;;;;;;;gFAWhB,IAAI;;;;qHAIiC,IAAI;;;;;;;;;;yHAUA,IAAI;8MACiF,IAAI;;;;;;;;0JAQxD,IAAI;qGACzD,IAAI;mHACU,IAAI;;umBAEgf,IAAI;;;;;8EAK7hB,IAAI;;;;;;oGAMkB,IAAI;yGACC,IAAI;;;;;iFAK5B,IAAI;yIACoD,IAAI;6hBACgZ,IAAI;;;;;;;;;;;+iBAWc,IAAI;;;;;;;;mEAQhf,IAAI;;;8EAGO,IAAI;6EACL,IAAI;0EACP,IAAI;;;;;6EAKD,IAAI;yCACxC,IAAI;mEACsB,IAAI;4EACK,IAAI;+EACD,IAAI;;;;;2EAKR,IAAI;;;;;;;uFAOQ,IAAI;;;;;;2EAMhB,IAAI;+EACA,IAAI;;;;;;;6KAO0F,IAAI;qMACoB,IAAI,gMAAgM,IAAI;;;;;;uFAMtT,IAAI;0JAC+D,IAAI;;;;;2GAKnD,IAAI;6EAClC,IAAI;+FACc,IAAI;;;;uFAIZ,IAAI;yFACF,IAAI;;;;;;;;;;;;;oKAauE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;uFA2BjF,IAAI;yFACF,IAAI;kIACqC,IAAI;;;;;;;;gIAQN,IAAI;sFAC9C,IAAI;0HACgC,IAAI;;;;oGAI1B,IAAI;oIAC4B,IAAI;;;;;;;;qEAQnE,IAAI;;;;;;;;;;;4EAWG,IAAI;yEACP,IAAI;0GAC6B,IAAI;+EAC/B,IAAI;2XACwS,IAAI;;;gdAGiF,IAAI,osBAAosB,IAAI;;;6EAG/kC,IAAI;mJACkE,IAAI;6JACM,IAAI;sGAC3D,IAAI;;;;;;;;;;;wbAW8U,IAAI;;;;qEAIvX,IAAI;wFACe,IAAI;2IAC+C,IAAI;;;2HAGpB,IAAI;4FACnC,IAAI;0EACtB,IAAI;qGACuB,IAAI;gFACzB,IAAI;;;;;;;;;;;;;0EAaV,IAAI;6EACD,IAAI;oFACG,IAAI;;;;;;;;;8EASV,IAAI;sEACZ,IAAI;8EACI,IAAI;4EACN,IAAI;mFACG,IAAI;;;;oEAInB,IAAI;0EACE,IAAI;4EACF,IAAI;EAC9E,sCAAsC;+EACuC,IAAI;iFACF,IAAI;;;oEAGjB,IAAI;;;;+EAIO,IAAI;6EACN,IAAI;0EACP,IAAI;4GAC8B,IAAI;uFACzB,IAAI;;wEAEnB,IAAI;;;;;2EAKD,IAAI;;;;;;oEAMX,IAAI;;mEAEL,IAAI;;;qEAGF,IAAI;sEACH,IAAI;mKACyF,IAAI;;;sEAGjG,IAAI;;;qEAGL,IAAI;;;8BAG3C,IAAI;;;;EAIhC,cAAc;EACd,wBAAwB;EACxB,mBAAmB,CAAC,IAAI,CAAC;;4OAEiN,IAAI;;;;;;;;mFAQ7J,IAAI;;;;;uBAKhE,IAAI;;;wFAG6D,IAAI;;;;;;;;;;;;;;;kFAeV,IAAI;;;;;6EAKT,IAAI;sFACK,IAAI;8EACZ,IAAI;;;;;sEAKZ,IAAI;oEACN,IAAI;8EACM,IAAI;yFACO,IAAI;;;;;uFAKN,IAAI;;;;;oEAKvB,IAAI;;;;;uGAK+B,IAAI;;;;;;;;;;EAUzG,kCAAkC,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;yIAkB2F,IAAI;kHAC3B,IAAI;;;;EAIpH,4CAA4C,CAAC,IAAI,CAAC;EAClD,wCAAwC,EAAE;EAC1C,8BAA8B,EAAE,GAAG,+BAA+B,CAAC,IAAI,CAAC;EACxE,sCAAsC,EAAE;EACxC,4CAA4C,CAAC,IAAI,CAAC;EAClD,sCAAsC,CAAC,IAAI,CAAC;EAC5C,iCAAiC,EAAE;EACnC,4BAA4B,CAAC,IAAI,CAAC;EAClC,gCAAgC,CAAC,IAAI,CAAC;EACtC,2CAA2C,CAAC,IAAI,CAAC;EACjD,6BAA6B,CAAC,IAAI,CAAC;EACnC,kCAAkC,CAAC,IAAI,CAAC;EACxC,6BAA6B,CAAC,IAAI,CAAC;EACnC,gCAAgC,CAAC,IAAI,CAAC;EACtC,iCAAiC,CAAC,IAAI,CAAC;EACvC,8BAA8B,CAAC,IAAI,CAAC;EACpC,iCAAiC,CAAC,IAAI,CAAC;EACvC,2BAA2B,CAAC,IAAI,CAAC;EACjC,gCAAgC,CAAC,IAAI,CAAC;EACtC,+BAA+B,CAAC,IAAI,CAAC;EACrC,4BAA4B,CAAC,IAAI,CAAC;EAClC,kCAAkC,CAAC,IAAI,CAAC;EACxC,0BAA0B,EAAE;EAC5B,yCAAyC,EAAE;EAC3C,+BAA+B,CAAC,IAAI,CAAC;EACrC,8BAA8B,CAAC,IAAI,CAAC;EACpC,4BAA4B,CAAC,IAAI,CAAC;EAClC,8BAA8B,CAAC,IAAI,CAAC;EACpC,iCAAiC,CAAC,IAAI,CAAC;EACvC,qCAAqC,CAAC,IAAI,CAAC;EAC3C,wCAAwC,CAAC,IAAI,CAAC;EAC9C,kCAAkC,CAAC,IAAI,CAAC;EACxC,qCAAqC,CAAC,IAAI,CAAC;EAC3C,0CAA0C,CAAC,IAAI,CAAC;;qEAEmB,IAAI;;;;;;;iRAOwM,IAAI;8NACvD,IAAI;icAC+N,IAAI;;;;qEAIhY,IAAI;;;;;qEAKJ,IAAI;;;;;;qEAMJ,IAAI;;;;;qFAKY,IAAI;;;;;sEAKnB,IAAI;;;;;qEAKL,IAAI;;ozBAE2uB,IAAI;;;mFAGruB,IAAI;;;;;;;;;2FASI,IAAI;0JAC2D,IAAI;;;;;uoBAKye,IAAI;;;;wFAInjB,IAAI;uFACL,IAAI;;;;4JAIiE,IAAI;;;;;;;8EAOlF,IAAI;;;;;;6EAML,IAAI;;;;;;oEAMb,IAAI;+GACuC,IAAI;gIACa,IAAI;;;ydAGqV,6BAA6B;0FAC5Z,IAAI;;;;uGAIS,IAAI;sGACL,IAAI;;;;sGAIJ,IAAI;;EAExG,4BAA4B;EAC5B,6BAA6B;;;;gFAIiD,IAAI;sEACd,IAAI;;;;qEAIL,IAAI;qOAC4J,IAAI;;;;;;qEAMpK,IAAI;;;;;;;;;qEASJ,IAAI;6EACI,IAAI;2EACN,IAAI;2EACJ,IAAI;kEACb,IAAI;;;;;0EAKI,IAAI;4FACc,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDA4EvC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;8EAyBiB,IAAI;;2JAEyE,IAAI;4HACnC,IAAI;kKACkC,IAAI;uJACf,IAAI;;;6GAG9C,IAAI;2FACtB,IAAI;;4HAE6B,IAAI;;;2FAGrC,IAAI;;kFAEb,IAAI;wFACE,IAAI;6FACC,IAAI;iJACgD,IAAI;wHAC7B,IAAI;uIACW,IAAI;sFACrD,qCAAqC;;;;;;;;;;;;;;;;;;;;uFAoBpC,IAAI;wFACH,IAAI;;;wFAGJ,IAAI;;0FAEF,IAAI;+FACC,IAAI;sGACG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAwH5F,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CA6GmB,IAAI;;;;;;;;;;;mCAWX,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA8CJ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;mEAwB4B,IAAI;;;;;mEAKJ,IAAI;;;;;mEAKJ,IAAI;;;;mEAIJ,IAAI;;;;;;yDAMd,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2EAiFc,IAAI;yEACN,IAAI;;;;upBAI0kB,6CAA6C;;;iEAGnoB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyEnE,wCAAwC;;;;+EAIqC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EAiCJ,IAAI;;;;;;;+GAO4B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;6rBAyB0kB,IAAI;;;;;;;;;;;;;;;;;;CAkBhsB,CAAC;IAEA,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,IAAI,IAAI,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,IAAI,IAAI,GAAG,6BAA6B,EAAE,CAAC;QAClD,OAAO,IAAI,IAAI,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,IAAI,IAAI,GAAG,0BAA0B,EAAE,CAAC;QAC/C,OAAO,IAAI,IAAI,GAAG,qBAAqB,EAAE,CAAC;QAC1C,OAAO,IAAI,IAAI,GAAG,8BAA8B,EAAE,CAAC;QACnD,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;CAwBd,CAAC;IACA,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEd,CAAC;IACA,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Bd,CAAC;IACA,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDX,0BAA0B;;;;EAI1B,mBAAmB,CAAC,IAAI,CAAC;;;;;;;;;;EAUzB,2BAA2B;;;;;;;;;;;;;;;;;wEAiB2C,IAAI;uEACL,IAAI;;;;;;;;;;wEAUH,IAAI;;;;+rCAImnC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sEAkD7nC,IAAI;;;;;;;8EAOI,IAAI;;;;;;wGAMsB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC3G,CAAC;IAEA,OAAO,IAAI,oCAAoC,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,oCAAoC,CAAC,IAAY;IAC/D,OAAO;;+JAEsJ,IAAI,+oBAA+oB,CAAC;AACnzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAmB,EACnB,SAAiB,EACjB,IAAY,EACZ,WAAoB,EACpB,WAAW,GAAY,KAAK;IAE5B,IAAI,OAAO,GAAG,iBAAiB,WAAW;;;;OAIrC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCT,SAAS;;gCAEgB,IAAI,qFAAqF,IAAI;;;;;;CAM5H,CAAC;IAEA,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;CAwBd,CAAC;IACA,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI;;;;CAId,CAAC;IACA,CAAC;IAED,OAAO,IAAI;;;;;;;8EAOiE,IAAI;;;yFAGO,IAAI;;;;;;;uGAOU,IAAI;yFAClB,IAAI;;EAE3F,sCAAsC;;;;;;0DAMkB,IAAI;;;;;;;;;;;;;;;;;;;;;;;2FAuB6B,IAAI;8FACD,IAAI;+MAC6G,IAAI;mGAChH,IAAI;;;mMAG4F,IAAI;;;;;0LAKb,IAAI;;;;4EAIlH,IAAI;+LAC+G,IAAI;;;;8DAIrI,IAAI;;;;;;;;;;;0CAWxB,IAAI;oCACV,IAAI;;;;;;;;;;;;;;yDAciB,IAAI;;;;;;;;0DAQH,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4HhD,SAAS;;;;;;;;;;;;sEAY+C,IAAI;;CAEzE,CAAC;IAEA,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;oDAEoD;AACpD,MAAM,CAAC,MAAM,0BAA0B,GAAG,qEAAqE,CAAC;AAChH,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,0BAA0B,yFAAyF,CAAC;AAEnK;gEACgE;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,2BAA2B,iIAAiI,CAAC;AAE3M;;8DAE8D;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;AAEvE,mGAAmG;AACnG,MAAM,CAAC,MAAM,gCAAgC,GAAG,4BAA4B,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,4FAA4F,IAAI,qSAAqS,IAAI,GAAG,gCAAgC,guBAAguB,CAAC;AACtpC,CAAC;AAED;mFACmF;AACnF,MAAM,CAAC,MAAM,sCAAsC,GAAG,kEAAkE,CAAC;AAEzH;;;;;;;;GAQG;AACH,yGAAyG;AACzG,MAAM,CAAC,MAAM,wBAAwB,GAAG,iXAAiX,CAAC;AAE1Z,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,GAAG,qBAAqB;;;;EAI/B,iBAAiB,CAAC,IAAI,CAAC;;EAEvB,wBAAwB;;;;;;;CAOzB,CAAC;AACF,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,MAAM,6BAA6B,GAAG,gDAAgD,CAAC;AAE9F,oFAAoF;AACpF,MAAM,CAAC,MAAM,6BAA6B,GAAG,+CAA+C,CAAC;AAE7F,0FAA0F;AAC1F,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,2mCAA2mC,CAAC;AAE7rC,MAAM,CAAC,MAAM,4BAA4B,GAAG,mCAAmC,CAAC;AAEhF,qGAAqG;AACrG,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,4BAA4B,6oBAA6oB,CAAC;AAE7tB,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,2CAA2C,CAAC;AAE1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,+BAA+B,CAAC;AACxE,0FAA0F;AAC1F,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,gsBAAgsB,CAAC;AAExwB;sDACsD;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,cAAc,slBAAslB,CAAC;AAE1oB,MAAM,CAAC,MAAM,qBAAqB,GAAG,qDAAqD,CAAC;AAC3F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,OAAO,qBAAqB,o8BAAo8B,IAAI,m/BAAm/B,IAAI,ykBAAykB,IAAI,6mFAA6mF,IAAI,qaAAqa,CAAC;AAE5nL,MAAM,CAAC,MAAM,wBAAwB,GAAG,+CAA+C,CAAC;AAExF;sDACsD;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,o/BAAo/B,CAAC;AAE5jC,6FAA6F;AAC7F,MAAM,CAAC,MAAM,sCAAsC,GAAG,gFAAgF,CAAC;AACvI,oHAAoH;AACpH,MAAM,CAAC,MAAM,uCAAuC,GAAG,+TAA+T,CAAC;AACvX,MAAM,CAAC,MAAM,oCAAoC,GAAG,waAAwa,CAAC;AAC7d,yFAAyF;AACzF,MAAM,CAAC,MAAM,6BAA6B,GAAG,6DAA6D,CAAC;AAE3G,6GAA6G;AAC7G,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,0fAA0f,oCAAoC,qPAAqP,CAAC;AAEr2B,kGAAkG;AAClG,MAAM,CAAC,MAAM,gCAAgC,GAAG,uEAAuE,CAAC;AAExH,uHAAuH;AACvH,MAAM,CAAC,MAAM,gCAAgC,GAAG,OAAO,gCAAgC,ytDAAytD,CAAC;AAEjzD;+EAC+E;AAC/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,43CAA43C,CAAC;AAEn6C,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,8rBAA8rB,CAAC;AAEhxB;;+DAE+D;AAC/D,MAAM,UAAU,wBAAwB;IACtC,OAAO,MAAM,GAAG,g6DAAg6D,GAAG,IAAI,CAAC;AAC17D,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,MAAM,GAAG,k2CAAk2C,GAAG,IAAI,CAAC;AAC53C,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,qFAAqF,CAAC;AAEtI;;+DAE+D;AAC/D,MAAM,UAAU,kCAAkC,CAAC,IAAY;IAC7D,OAAO,MAAM,GAAG,gCAAgC,GAAG,MAAM,GAAG,04CAA04C,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9+C,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,2BAA2B,GAAG,0HAA0H,CAAC;AACtK,uGAAuG;AACvG,MAAM,CAAC,MAAM,6BAA6B,GAAG,4DAA4D,CAAC;AAE1G;;;wBAGwB;AACxB,MAAM,UAAU,4BAA4B,CAAC,IAAY;IACvD,OAAO,MAAM,GAAG,2BAA2B,GAAG,MAAM,GAAG,msDAAmsD,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAClyD,CAAC;AAGD;;+DAE+D;AAC/D,MAAM,UAAU,8BAA8B,CAAC,IAAY;IACzD,OAAO,MAAM,GAAG,4EAA4E,GAAG,o4CAAo4C,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AAC3gD,CAAC;AAED;;2DAE2D;AAC3D,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,OAAO,MAAM,GAAG,sEAAsE,GAAG,ghCAAghC,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;AACjpC,CAAC;AAED;;+DAE+D;AAC/D,MAAM,UAAU,8BAA8B;IAC5C,OAAO,MAAM,GAAG,irCAAirC,CAAC;AACpsC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instar",
3
- "version": "1.3.1638",
3
+ "version": "1.3.1639",
4
4
  "description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -30,7 +30,7 @@
30
30
  "test:contract": "node scripts/run-contract-tests.js",
31
31
  "test:contract:raw": "vitest run --config vitest.contract.config.ts",
32
32
  "test:all": "vitest run && vitest run --config vitest.integration.config.ts && vitest run --config vitest.e2e.config.ts",
33
- "lint": "node node_modules/typescript-native/bin/tsc --noEmit && node scripts/lint-no-direct-destructive.js && node scripts/lint-no-direct-llm-http.js && node scripts/lint-no-direct-url-log.js && node scripts/lint-no-unfunneled-topic-creation.js && node scripts/lint-no-unfunneled-headless-launch.js && node scripts/lint-no-unfunneled-tmux-literal-send.js && node scripts/lint-no-undefined-erasing-default-merge.js && node scripts/lint-no-unbounded-llm-spawn.js && node scripts/lint-no-unregistered-self-action.js && node scripts/lint-no-unfunneled-credential-write.js && node scripts/lint-state-registry.js && node scripts/lint-store-retention-declared.js && node scripts/lint-no-wholefile-sync-read.js && node scripts/lint-cas-emit-placement.js && node scripts/lint-journal-actuation-ban.js && node scripts/lint-no-blocking-process-scans.js && node scripts/lint-sync-subprocess-chokepoint.js && node scripts/lint-dev-agent-dark-gate.js && node scripts/lint-guard-manifest.js && node scripts/lint-llm-attribution.js && node scripts/lint-no-mainthread-cartographer-walk.js && node scripts/lint-scrape-fixture-realness.js && node scripts/check-codex-rule1-drift.js && node scripts/lint-routing-registry-freshness.js && node scripts/lint-no-opus-claude-cli-gating.js && node scripts/lint-model-registry-freshness.mjs && node scripts/lint-no-unreachable-messaging-gate.js && node scripts/lint-telegram-egress-boundary.mjs && node scripts/lint-nature-chains.mjs && node scripts/lint-emit-without-admit.js && node scripts/lint-migration-consumer-completeness.js && node scripts/lint-canonical-pipeline-completeness.mjs && node scripts/lint-expected-capacity-degradations.js && node scripts/lint-rollout-evidence-resolvable.js && node scripts/lint-no-direct-standards-registry-path.mjs && node scripts/lint-blocking-decisions-declared.mjs && node scripts/lint-no-duplicate-definitions.mjs && node scripts/lint-dispatch-withholds-answer.mjs && node scripts/lint-recall-surface-names-match-mechanism.mjs && node scripts/lint-registry-insertion-placement.mjs && node scripts/lint-standard-code-backreference.mjs && node scripts/lint-bounded-judgment-input.mjs && node scripts/lint-registry-tree-parentage.mjs && node scripts/lint-single-governing-obligation.mjs && node scripts/lint-documented-only-countdown.mjs && node scripts/lint-deferral-carrier-resolvable.mjs --staged --enforce && node scripts/generate-standards-hierarchy.mjs --check && node scripts/lint-framework-list-completeness.mjs && node scripts/lint-ecosystem-adoption.mjs",
33
+ "lint": "node node_modules/typescript-native/bin/tsc --noEmit && node scripts/lint-no-direct-destructive.js && node scripts/lint-no-direct-llm-http.js && node scripts/lint-no-direct-url-log.js && node scripts/lint-no-unfunneled-topic-creation.js && node scripts/lint-no-unfunneled-headless-launch.js && node scripts/lint-no-unfunneled-tmux-literal-send.js && node scripts/lint-no-undefined-erasing-default-merge.js && node scripts/lint-no-unbounded-llm-spawn.js && node scripts/lint-no-unregistered-self-action.js && node scripts/lint-no-unfunneled-credential-write.js && node scripts/lint-state-registry.js && node scripts/lint-store-retention-declared.js && node scripts/lint-no-wholefile-sync-read.js && node scripts/lint-cas-emit-placement.js && node scripts/lint-journal-actuation-ban.js && node scripts/lint-no-blocking-process-scans.js && node scripts/lint-sync-subprocess-chokepoint.js && node scripts/lint-dev-agent-dark-gate.js && node scripts/lint-guard-manifest.js && node scripts/lint-llm-attribution.js && node scripts/lint-no-mainthread-cartographer-walk.js && node scripts/lint-scrape-fixture-realness.js && node scripts/check-codex-rule1-drift.js && node scripts/lint-routing-registry-freshness.js && node scripts/lint-no-opus-claude-cli-gating.js && node scripts/lint-model-registry-freshness.mjs && node scripts/lint-no-unreachable-messaging-gate.js && node scripts/lint-telegram-egress-boundary.mjs && node scripts/lint-nature-chains.mjs && node scripts/lint-emit-without-admit.js && node scripts/lint-migration-consumer-completeness.js && node scripts/lint-canonical-pipeline-completeness.mjs && node scripts/lint-expected-capacity-degradations.js && node scripts/lint-rollout-evidence-resolvable.js && node scripts/lint-no-direct-standards-registry-path.mjs && node scripts/lint-blocking-decisions-declared.mjs && node scripts/lint-no-duplicate-definitions.mjs && node scripts/lint-dispatch-withholds-answer.mjs && node scripts/lint-recall-surface-names-match-mechanism.mjs && node scripts/lint-registry-insertion-placement.mjs && node scripts/lint-standard-code-backreference.mjs && node scripts/lint-bounded-judgment-input.mjs && node scripts/lint-registry-tree-parentage.mjs && node scripts/lint-single-governing-obligation.mjs && node scripts/lint-documented-only-countdown.mjs && node scripts/lint-deferral-carrier-resolvable.mjs --staged --enforce && node scripts/generate-standards-hierarchy.mjs --check && node scripts/lint-framework-list-completeness.mjs && node scripts/lint-ecosystem-adoption.mjs && node scripts/lint-plain-user-notices.mjs",
34
34
  "lint:parallel": "node scripts/run-lint-parallel.mjs",
35
35
  "lint:canonical-pipeline-completeness": "node scripts/lint-canonical-pipeline-completeness.mjs",
36
36
  "test:canonical-pipeline-runtime": "vitest run --config vitest.e2e.config.ts tests/e2e/feedback-factory-drain-lifecycle.test.ts && vitest run tests/unit/canonical-pipeline-completeness-lint.test.ts tests/unit/canonical-pipeline-runtime-evidence.test.ts",
@@ -66,7 +66,8 @@
66
66
  "postinstall": "node scripts/fix-better-sqlite3.cjs",
67
67
  "prepare": "husky",
68
68
  "lint:standards-registry-path": "node scripts/lint-no-direct-standards-registry-path.mjs",
69
- "lint:framework-list": "node scripts/lint-framework-list-completeness.mjs"
69
+ "lint:framework-list": "node scripts/lint-framework-list-completeness.mjs",
70
+ "lint:plain-user-notices": "node scripts/lint-plain-user-notices.mjs"
70
71
  },
71
72
  "keywords": [
72
73
  "instar",
@@ -0,0 +1,191 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * lint-plain-user-notices.mjs — Plain and Complete (docs/UX-AND-AGENT-AGENCY-STANDARD.md Rule 8).
4
+ *
5
+ * Notices the server writes itself (telegram.sendToTopic, slack sendToChannel,
6
+ * sendDeterministicTelegramNotice, …) go out on deterministic paths that skip
7
+ * the LLM tone gate on purpose: an alarm must arrive even when the model is
8
+ * down. That is why their wording has to be held at BUILD time instead. This
9
+ * lint finds the send call sites in src/ and flags, inside the text argument:
10
+ *
11
+ * RAW_REASON — an internal value pasted into user text: `${detail}`,
12
+ * `${reason}`, `${err.message}`, `${String(err)}` …
13
+ * (the 2026-11-03 "drain bound (30000ms) reached" notice).
14
+ * INTERNAL_TERM — a word from src/data/plain-notice-terms.json in a string
15
+ * literal of the text argument ("respawned", "final turn" …).
16
+ *
17
+ * Ratchet: a frozen per-file baseline (scripts/plain-user-notices-baseline.json)
18
+ * grandfathers today's hits; a file whose count GROWS fails. Shrinking a count
19
+ * is reported so the baseline can be lowered (--update rewrites it).
20
+ * A deliberate exception carries `@plain-notice-ok: <why>` on the call line or
21
+ * the line above (e.g. a reply that echoes an id the person asked for).
22
+ *
23
+ * COVERAGE HONESTY: static and approximate. A notice whose text is built in a
24
+ * variable away from the send call is not seen here; those belong in the
25
+ * catalog (src/messaging/userNotices.ts), whose test runs the full check on
26
+ * rendered text. Exit codes: 0 pass · 1 new violation · 2 cannot-read.
27
+ */
28
+ import fs from 'node:fs';
29
+ import path from 'node:path';
30
+ import { fileURLToPath } from 'node:url';
31
+
32
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
33
+ function argVal(flag) {
34
+ const i = process.argv.indexOf(flag);
35
+ return i >= 0 ? process.argv[i + 1] : undefined;
36
+ }
37
+ const ROOT = path.resolve(argVal('--root') ?? path.join(__dirname, '..'));
38
+ const BASELINE = path.resolve(argVal('--baseline') ?? path.join(ROOT, 'scripts', 'plain-user-notices-baseline.json'));
39
+ const TERMS_PATH = path.join(ROOT, 'src', 'data', 'plain-notice-terms.json');
40
+ const UPDATE = process.argv.includes('--update');
41
+
42
+ const SEND_CALL_RE = /\b(?:sendToTopic|sendToChannel|sendDeterministicTelegramNotice|sendToLifeline|postToChannel)\s*\(/g;
43
+ const WAIVER = '@plain-notice-ok';
44
+ // A bare internal value (identifier / member chain, no call) named like a reason.
45
+ const RAW_EXPR_RE = /^[\w$?.!]*\b(?:detail|details|reason|err|error|cause|stderr|stdout)\b[\w$?.!]*$/;
46
+ // Any expression that reads an error's message or stringifies an error, in any form:
47
+ // `err.message`, `(err as Error).message`, `err instanceof Error ? err.message : String(err)`.
48
+ const RAW_CALL_RE = /(?:\b(?:e|err|error)\b\)?\??\.message\b|\bString\(\s*(?:e|err|error)\s*\)|^JSON\.stringify\()/i;
49
+
50
+ function readTerms() {
51
+ const raw = JSON.parse(fs.readFileSync(TERMS_PATH, 'utf-8'));
52
+ return raw.internalTerms.map((t) => ({
53
+ term: t,
54
+ re: new RegExp(`(^|[^A-Za-z0-9_-])${t.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}(?![A-Za-z0-9_-])`,
55
+ t === t.toUpperCase() && t.length <= 4 ? '' : 'i'),
56
+ }));
57
+ }
58
+
59
+ /** From the char after "(", return the index of the matching ")" (strings/templates aware). */
60
+ function argSpanEnd(src, start) {
61
+ let depth = 1;
62
+ const stack = []; // template-literal nesting
63
+ for (let i = start; i < src.length; i++) {
64
+ const c = src[i];
65
+ if (c === '"' || c === "'") {
66
+ for (i++; i < src.length && src[i] !== c; i++) if (src[i] === '\\') i++;
67
+ continue;
68
+ }
69
+ if (c === '`') {
70
+ // walk the template; recurse on ${ … }
71
+ for (i++; i < src.length && src[i] !== '`'; i++) {
72
+ if (src[i] === '\\') { i++; continue; }
73
+ if (src[i] === '$' && src[i + 1] === '{') {
74
+ let d = 1; i += 2;
75
+ for (; i < src.length && d > 0; i++) {
76
+ if (src[i] === '{') d++;
77
+ else if (src[i] === '}') d--;
78
+ else if (src[i] === '`') { for (i++; i < src.length && src[i] !== '`'; i++) if (src[i] === '\\') i++; }
79
+ }
80
+ i--;
81
+ }
82
+ }
83
+ continue;
84
+ }
85
+ if (c === '/' && src[i + 1] === '/') { while (i < src.length && src[i] !== '\n') i++; continue; }
86
+ if (c === '/' && src[i + 1] === '*') { i = src.indexOf('*/', i + 2); if (i < 0) return src.length; i++; continue; }
87
+ if (c === '(') depth++;
88
+ else if (c === ')') { depth--; if (depth === 0) return i; }
89
+ }
90
+ void stack;
91
+ return src.length;
92
+ }
93
+
94
+ /** Template interpolation expressions + plain string literal bodies inside a span. */
95
+ function scanSpan(span) {
96
+ const exprs = [];
97
+ const literals = [];
98
+ const tpl = /`((?:\\.|[^`\\])*)`/gs;
99
+ for (const m of span.matchAll(tpl)) {
100
+ const body = m[1];
101
+ let lit = '';
102
+ for (let i = 0; i < body.length; i++) {
103
+ if (body[i] === '$' && body[i + 1] === '{') {
104
+ let d = 1; let j = i + 2;
105
+ for (; j < body.length && d > 0; j++) { if (body[j] === '{') d++; else if (body[j] === '}') d--; }
106
+ exprs.push(body.slice(i + 2, j - 1).trim());
107
+ lit += ' ';
108
+ i = j - 1;
109
+ } else lit += body[i];
110
+ }
111
+ literals.push(lit);
112
+ }
113
+ for (const m of span.matchAll(/'((?:\\.|[^'\\])*)'|"((?:\\.|[^"\\])*)"/g)) literals.push(m[1] ?? m[2] ?? '');
114
+ return { exprs, literals };
115
+ }
116
+
117
+ function walk(dir, out = []) {
118
+ for (const e of fs.readdirSync(dir, { withFileTypes: true })) {
119
+ const p = path.join(dir, e.name);
120
+ if (e.isDirectory()) { if (e.name !== 'node_modules') walk(p, out); }
121
+ else if (/\.(ts|js|mjs)$/.test(e.name) && !/\.d\.ts$/.test(e.name)) out.push(p);
122
+ }
123
+ return out;
124
+ }
125
+
126
+ export function lintSource(src, terms) {
127
+ const hits = [];
128
+ for (const m of src.matchAll(SEND_CALL_RE)) {
129
+ const open = m.index + m[0].length;
130
+ const end = argSpanEnd(src, open);
131
+ const span = src.slice(open, end);
132
+ const line = src.slice(0, m.index).split('\n').length;
133
+ const lines = src.split('\n');
134
+ const context = `${lines[line - 2] ?? ''}\n${lines[line - 1] ?? ''}`;
135
+ if (context.includes(WAIVER) || span.includes(WAIVER)) continue;
136
+ const { exprs, literals } = scanSpan(span);
137
+ for (const x of exprs) {
138
+ if (RAW_EXPR_RE.test(x) || RAW_CALL_RE.test(x)) hits.push({ line, code: 'RAW_REASON', match: `\${${x}}` });
139
+ }
140
+ for (const lit of literals) {
141
+ for (const { term, re } of terms) if (re.test(lit)) hits.push({ line, code: 'INTERNAL_TERM', match: term });
142
+ }
143
+ }
144
+ return hits;
145
+ }
146
+
147
+ function main() {
148
+ let terms;
149
+ try { terms = readTerms(); } catch (e) { console.error(`lint-plain-user-notices: cannot read ${TERMS_PATH}: ${e.message}`); process.exit(2); }
150
+ const files = walk(path.join(ROOT, 'src'));
151
+ const counts = {};
152
+ const detail = {};
153
+ for (const f of files) {
154
+ const rel = path.relative(ROOT, f).split(path.sep).join('/');
155
+ const hits = lintSource(fs.readFileSync(f, 'utf-8'), terms);
156
+ if (hits.length) { counts[rel] = hits.length; detail[rel] = hits; }
157
+ }
158
+ if (UPDATE) {
159
+ fs.writeFileSync(BASELINE, JSON.stringify(Object.fromEntries(Object.entries(counts).sort()), null, 2) + '\n');
160
+ console.log(`lint-plain-user-notices: baseline written (${Object.keys(counts).length} files).`);
161
+ return;
162
+ }
163
+ let baseline = {};
164
+ try { baseline = JSON.parse(fs.readFileSync(BASELINE, 'utf-8')); } catch { /* no baseline = zero allowance */ }
165
+ const failures = [];
166
+ const lowered = [];
167
+ for (const [rel, n] of Object.entries(counts)) {
168
+ const allowed = baseline[rel] ?? 0;
169
+ if (n > allowed) failures.push({ rel, n, allowed });
170
+ else if (n < allowed) lowered.push({ rel, n, allowed });
171
+ }
172
+ for (const [rel, allowed] of Object.entries(baseline)) if (!(rel in counts) && allowed > 0) lowered.push({ rel, n: 0, allowed });
173
+ if (lowered.length) {
174
+ console.log(`lint-plain-user-notices: ${lowered.length} file(s) improved — lower the baseline with --update:`);
175
+ for (const l of lowered) console.log(` ${l.rel}: ${l.allowed} → ${l.n}`);
176
+ }
177
+ if (failures.length) {
178
+ console.error('lint-plain-user-notices: new jargon or raw internal detail in a notice sent to the user.');
179
+ console.error('Standard: docs/UX-AND-AGENT-AGENCY-STANDARD.md Rule 8 (Plain and Complete).');
180
+ for (const f of failures) {
181
+ console.error(`\n ${f.rel}: ${f.n} hit(s), baseline allows ${f.allowed}`);
182
+ for (const h of detail[f.rel]) console.error(` line ${h.line}: ${h.code} ${h.match}`);
183
+ }
184
+ console.error(`\nFix: say what happened, what it means and what to do, in plain words; keep reasons/ids in logs.`);
185
+ console.error(`Fixed wording belongs in src/messaging/userNotices.ts (tested). Deliberate exception: "// ${WAIVER}: <why>".`);
186
+ process.exit(1);
187
+ }
188
+ console.log(`lint-plain-user-notices: ok (${files.length} files scanned).`);
189
+ }
190
+
191
+ if (process.argv[1] && path.resolve(process.argv[1]) === fileURLToPath(import.meta.url)) main();
@@ -0,0 +1,6 @@
1
+ {
2
+ "src/commands/server.ts": 3,
3
+ "src/lifeline/TelegramLifeline.ts": 1,
4
+ "src/messaging/TelegramAdapter.ts": 6,
5
+ "src/messaging/slack/SlackAdapter.ts": 2
6
+ }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "./builtin-manifest.schema.json",
3
3
  "schemaVersion": 1,
4
- "generatedAt": "2026-11-04T00:13:41.983Z",
5
- "instarVersion": "1.3.1638",
4
+ "generatedAt": "2026-11-04T00:37:44.365Z",
5
+ "instarVersion": "1.3.1639",
6
6
  "entryCount": 206,
7
7
  "entries": {
8
8
  "hook:session-start": {
@@ -0,0 +1,38 @@
1
+ {
2
+ "_comment": "Shared by src/messaging/plainNoticeCheck.ts (test-time check of catalogued notices) and scripts/lint-plain-user-notices.mjs (build-time check of send sites). Standard: docs/UX-AND-AGENT-AGENCY-STANDARD.md Rule 8. Internal words the person cannot act on. Matched case-insensitively on word boundaries.",
3
+ "internalTerms": [
4
+ "drain bound",
5
+ "drained",
6
+ "final turn",
7
+ "respawn",
8
+ "respawned",
9
+ "respawning",
10
+ "epoch",
11
+ "CAS",
12
+ "tmux",
13
+ "reap-log",
14
+ "reaper",
15
+ "payload",
16
+ "stderr",
17
+ "stdout",
18
+ "exit code",
19
+ "pid",
20
+ "subprocess",
21
+ "launchd",
22
+ "systemd",
23
+ "pinned profile",
24
+ "boot sweep",
25
+ "undefined",
26
+ "NaN",
27
+ "null"
28
+ ],
29
+ "codePatterns": [
30
+ { "code": "DURATION_IN_MS", "re": "\\b\\d+\\s?ms\\b", "why": "a millisecond count is a setting, not news; say the time in words if it matters" },
31
+ { "code": "SNAKE_CASE", "re": "\\b[a-z]+_[a-z0-9_]+\\b", "why": "a snake_case name is a code identifier" },
32
+ { "code": "CAMEL_CASE", "re": "\\b[a-z]+[A-Z][A-Za-z0-9]*\\b", "why": "a camelCase name is a code identifier" },
33
+ { "code": "REASON_CODE", "re": "\\(reason: [a-z0-9-]+\\)", "why": "a raw reason code; translate it into what happened" },
34
+ { "code": "BRACKET_COUNTER", "re": "\\[#\\d+\\]", "why": "an audit counter means nothing to the person" },
35
+ { "code": "ERRNO", "re": "\\b(ENOENT|ECONNREFUSED|ECONNRESET|ETIMEDOUT|EPIPE|EACCES|EPERM|EADDRINUSE)\\b", "why": "an operating-system error code" }
36
+ ],
37
+ "camelCaseAllow": ["iPhone", "iPad", "iMessage", "macOS", "iOS", "iCloud", "eBay", "gMail", "youTube"]
38
+ }
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": 1,
3
3
  "generatedFrom": "source-tree",
4
4
  "registrySha256": "db01d9f92c6aa26ca903702896b41be53722982ed07d27633237bb254c214290",
5
- "packageVersion": "1.3.1638",
5
+ "packageVersion": "1.3.1639",
6
6
  "guards": [
7
7
  {
8
8
  "ref": "docs/audits/phase-b/f10-triage.md",
@@ -1,5 +1,5 @@
1
1
  {
2
- "sha256": "8083e6e8123223c8cb7e3ea465bab16a6b29cdf68ce8cf1347d19e3500dead49",
2
+ "sha256": "c31cb53ab5cc37a07500f2de39cc6ec13bade8afb52f76074876e04ca68a2d6b",
3
3
  "registrySha256": "db01d9f92c6aa26ca903702896b41be53722982ed07d27633237bb254c214290",
4
- "packageVersion": "1.3.1638"
4
+ "packageVersion": "1.3.1639"
5
5
  }
@@ -2,5 +2,5 @@
2
2
  "sha256": "db01d9f92c6aa26ca903702896b41be53722982ed07d27633237bb254c214290",
3
3
  "articleCount": 93,
4
4
  "generatedFrom": "docs/STANDARDS-REGISTRY.md",
5
- "packageVersion": "1.3.1638"
5
+ "packageVersion": "1.3.1639"
6
6
  }
@@ -363,6 +363,7 @@ I am the user's interface to the system. They talk to me in natural language; I
363
363
  - **DO** suggest /commands that work within our chat (like /restart, /new)
364
364
  - **DO** explain what happened in conversational terms, not technical ones
365
365
  - When something goes wrong, say what went wrong and what I'm doing about it — not the stack trace
366
+ - **Every message is plain and complete**: what happened, what it means for them, and what they need to do (if anything) — said once, in plain words. Too vague ("The session has stopped.") is useless; too technical (reason codes, timeouts, ids, "drain bound (30000ms)") is useless too. Internal detail stays in logs.
366
367
 
367
368
  ## Agent Infrastructure
368
369
 
@@ -0,0 +1,24 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ The notices Instar's server writes to you on its own now say, in plain words, what happened, what it means for you and what to do. The worst one, sent when a conversation moved to another machine before the last step finished, used to read "This conversation moved machines mid-task (drain bound (30000ms) reached — final turn may be partial)…". It now reads: "I moved this conversation to the Mac Studio before I'd finished my last step, so that step may be incomplete. The conversation carries on there. If that step matters, ask me to check it." It names the machine and never shows a machine id. The restart notices and the "pinned profile" note were rewritten the same way. The "Session respawned." line no longer follows a restart I have already told you about, because my reply confirms it.
9
+
10
+ The standard behind this is written down as Rule 8, "Plain and Complete", in the UX and Agent Agency standard. A message fails if it is too vague to act on or too technical to digest. It has to give the most distinct and critical information in plain language. Two checks hold it. The fixed server notices live in one catalog that a test reads for internal words, ids, timeouts and reason codes. A build-time lint refuses any new server notice that pastes a raw internal reason (`${detail}`, `${err.message}`) or an internal word into your message. Neither check runs while a message is being sent, so an alarm is never held up when the model is down.
11
+
12
+ ## What to Tell Your User
13
+
14
+ When I tell you something on my own (a restart, or a move to another machine), I now say what happened, what it means for you and whether you need to do anything, with no internal codes. If one of my automatic messages ever reads as jargon or too vague to use, tell me. It is now a defect against a written standard.
15
+
16
+ ## Summary of New Capabilities
17
+
18
+ - Rule 8 "Plain and Complete" in docs/UX-AND-AGENT-AGENCY-STANDARD.md, with real before/after examples.
19
+ - `src/messaging/userNotices.ts`: the tested catalog of fixed server notices.
20
+ - `npm run lint` includes `lint-plain-user-notices`, a ratchet against raw internal detail in server notices (Telegram and Slack send sites).
21
+
22
+ ## Evidence
23
+
24
+ Measured from the agent's sent-message log before choosing what to rewrite: in the four days to 2026-11-03, "Session respawned." and "Session restarting — message queued." went out 44 times and the pinned-profile note 29 times. The new tests fail on the old code: the drain notice received the raw reason, and the lint flags `${detail}` and "final turn" at that send site. They pass on the new code. Live proof is a real move between two updated machines (see the PR).
@@ -0,0 +1,15 @@
1
+ # Plain and Complete notices — the short version
2
+
3
+ **What this is.** When Instar's server sends you a message on its own, for example after restarting a session or moving a conversation to another machine, that message is written in code by a developer. It doesn't go through the AI check that reviews messages a session writes. That is deliberate: if the AI is down, an alarm still has to reach you. The side effect is that nothing checked whether those messages made sense to a person. On 2026-11-03 Justin got "This conversation moved machines mid-task (drain bound (30000ms) reached — final turn may be partial). Work resumes on the new machine — the final turn before the move may be partial." It pasted an internal reason straight in, said the same thing twice and didn't name the machine. He asked for a standard: messages must be easy to digest and carry just enough information to be useful.
4
+
5
+ **What already existed.** The UX standard already said names must never be replaced by ids (Rule 7). The constitution already said routine self-narration ("I restarted") should not be sent at all (Near-Silent Notifications). Session-written messages already pass a tone gate, and scheduled jobs get a jargon and file-path advisory. None of that covered how the server's own fixed notices are worded.
6
+
7
+ **What is new.**
8
+ 1. A written rule, Rule 8 "Plain and Complete", in Justin's words. Every message says what happened, what it means for the person and what they need to do, once and in plain words. It can fail by being too vague or too technical. It comes with real before/after examples.
9
+ 2. One catalog file holds the server's fixed notices. A test reads every one for internal words, ids, timeouts, reason codes and file paths, and for messages too short to say anything.
10
+ 3. A build check looks at every place the server sends a message (Telegram and Slack) and refuses new code that pastes a raw internal reason, such as an error message or a reason code, into your text. Today's remaining cases are frozen in a list that may only shrink. They are tracked for rewriting as feedback item fb-d1c2f259-243.
11
+ 4. Four real notices rewritten: the moved-machines one (now names the machine, says the step may be incomplete, and tells you to ask for a check, since nothing re-checks it automatically), both restart notices, and the pinned-settings note.
12
+
13
+ **Safeguards.** Nothing here runs when a message is sent, so no message can be delayed or blocked by it. Code that recognises the server's notices by their wording (so they are never mistaken for a real reply) now reads the same catalog, so a reworded notice is still recognised. Old wordings stay recognised because they are still in message history.
14
+
15
+ **What you need to decide.** Nothing. The standard could not go into the constitution registry itself, because registry changes need a signed approval and no approval key is installed yet. It lives in the UX standard, which the registry already points to. Installing the key is Echo's job.